C# 中將浮點數四捨五入到小數點後兩位

  1. C# 使用 Decimal.Round() 方法將十進位制值舍入到兩個十進位制位
  2. C# 使用 Math.Round() 方法將十進位制值四捨五入到兩個十進位制位

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