C# 中将浮点数四舍五入到小数点后两位

Minahil Noor 2023年1月30日 2020年6月9日
  1. C# 使用 decimal.Round() 方法将十进制值舍入到两个十进制位
  2. C# 使用 Math.Round() 方法将十进制值四舍五入到两个十进制位
C# 中将浮点数四舍五入到小数点后两位

在 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 方法。

相关文章 - Csharp Decimal