.net C# 取整处理

发布于:2023-01-16 ⋅ 阅读:(500) ⋅ 点赞:(0)

Math.Round:四舍六入五取整

将值舍入到最接近的整数或指定的小数位数。

Console.WriteLine($"{"Value",-10} {"Default",-10} {"ToEven",-10} {"AwayFromZero",-15} {"ToZero",-15}");
for (decimal value = 12.0m; value <= 13.0m; value += 0.1m)
    Console.WriteLine($"{value,-10} {Math.Round(value),-10} " +
        $"{Math.Round(value, MidpointRounding.ToEven),-10} " +
        $"{Math.Round(value, MidpointRounding.AwayFromZero),-15} " +
        $"{Math.Round(value, MidpointRounding.ToZero),-15}");

// The example displays the following output:
//       Value      Default    ToEven     AwayFromZero    ToZero
//       12.0       12         12         12              12
//       12.1       12         12         12              12
//       12.2       12         12         12              12
//       12.3       12         12         12              12
//       12.4       12         12         12              12
//       12.5       12         12         13              12
//       12.6       13         13         13              12
//       12.7       13         13         13              12
//       12.8       13         13         13              12
//       12.9       13         13         13              12
//       13.0       13         13         13              13

Math.Round 方法 (System) | Microsoft Docs

Math.Ceiling:向上取整,只要有小数都加1

返回大于或等于指定数字的最小整数值。

Math.Ceiling 方法 (System) | Microsoft Docs

 

Math.Floor:向下取整,总是舍去小数

返回小于或等于指定数字的最大整数值。

重载

Floor(Double)

返回小于或等于指定双精度浮点数的最大整数值。

Floor(Decimal)

返回小于或等于指定小数的最大整数值。

 Math.Floor 方法 (System) | Microsoft Docs

下面的示例演示 Math.Floor(Decimal) 方法,并将其与方法进行比较 Ceiling(Decimal) 。

decimal[] values = {7.03m, 7.64m, 0.12m, -0.12m, -7.1m, -7.6m};
Console.WriteLine("  Value          Ceiling          Floor\n");
foreach (decimal value in values)
   Console.WriteLine("{0,7} {1,16} {2,14}",
                     value, Math.Ceiling(value), Math.Floor(value));
// The example displays the following output to the console:
//         Value          Ceiling          Floor
//
//          7.03                8              7
//          7.64                8              7
//          0.12                1              0
//         -0.12                0             -1
//          -7.1               -7             -8
//          -7.6               -7             -8