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