C# 中将浮点数四舍五入到小数点后两位
Minahil Noor
2024年2月16日
在 C# 中,我们可以使用不同的方法轻松舍入一个浮点数,例如 decimal.Round()
和 Math.Round()
。
本文将重点介绍将十进制值浮点数舍入到两个十进制位的方法。
C# 使用 decimal.Round()
方法将十进制值舍入到两个十进制位
decimal.Round()
方法是将十进制数字四舍五入为指定的位数的最简单的方法。此方法最多允许 28 个小数位。
此方法的正确语法如下:
decimal.Round(decimalValueName, integerValue);
示例代码:
using System;
public class RoundDecimal {
public static void Main() {
decimal decimalValue = 123.456M;
Console.WriteLine("The Decimal Value Before Applying Method: {0}", decimalValue);
Console.WriteLine();
decimalValue = decimal.Round(decimalValue, 2);
Console.WriteLine("The Decimal Value After Applying Method: {0}", decimalValue);
}
}
输出:
The Decimal Value Before Applying Method: 123.456
The Decimal Value After Applying Method: 123.46
如果要舍入的小数位数的值不在 0-28 范围内,则此方法将抛出 ArgumentOutOfRangeException
。然后,通过使用 try-catch
块来处理该异常。
还有另一种使用 decimal.Round()
方法的方式,示例代码如下:
示例代码:
using System;
public class RoundDecimal {
public static void Main() {
decimal decimalValue = 12.345M;
Console.WriteLine("The Decimal Value Before Applying Method: {0}", decimalValue);
Console.WriteLine();
decimalValue = decimal.Round(decimalValue, 2, MidpointRounding.AwayFromZero);
Console.WriteLine("The Decimal Value After Applying Method: {0}", decimalValue);
}
}
输出:
The Decimal Value Before Applying Method: 12.345
The Decimal Value After Applying Method: 12.35
MidpointRounding.AwayFromZero
用于将数字从零舍入。它的对应对象是 MidpointRounding.ToEven
,它将给定的十进制数四舍五入到最接近的偶数。
示例代码:
using System;
public class RoundDecimal {
public static void Main() {
decimal decimalValue = 12.345M;
Console.WriteLine("The Decimal Value Before Applying Method: {0}", decimalValue);
Console.WriteLine();
decimalValue = decimal.Round(decimalValue, 2, MidpointRounding.ToEven);
Console.WriteLine("The Decimal Value After Applying Method: {0}", decimalValue);
}
}
输出:
The Decimal Value Before Applying Method: 12.345
The Decimal Value After Applying Method: 12.34
C# 使用 Math.Round()
方法将十进制值四舍五入到两个十进制位
Math.Round()
方法与 decimal.Round()
相同。
此方法的正确语法如下:
Math.Round(decimalValueName, integerValue);
示例代码:
using System;
public class RoundDecimal {
public static void Main() {
decimal decimalValue = 123.456M;
Console.WriteLine("The Decimal Value Before Applying Method: {0}", decimalValue);
Console.WriteLine();
decimalValue = Math.Round(decimalValue, 2);
Console.WriteLine("The Decimal Value After Applying Method: {0}", decimalValue);
}
}
输出:
The Decimal Value Before Applying Method: 123.456
The Decimal Value After Applying Method: 123.46
就像 decimal.Round()
方法一样,它也会抛出异常,然后使用 try-catch
块来处理。我们也可以像 decimal.Round()
方法那样指定 MidpointRounding
方法。