當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C# Math.Round()方法用法及代碼示例


在C#中,Math.Round()是Math類方法,用於將值四舍五入到最接近的整數或小數位數。可以通過更改傳遞的參數的數量和類型來重載此方法。 Math.Round()方法的重載列表中共有8種方法。在這裏,我們將隻討論4種方法,其餘4種方法將在C#中討論。 Math.Round()方法|設置-2。



Math.Round(Double)

此方法將雙精度浮點值舍入為最接近的整數值。

用法:

public static double Round(double x)

參數:

  • x:要四舍五入的雙浮點數。此參數的類型為System.Double。

返回類型:它返回最接近x的整數,返回類型為System.Double。

注意:如果x的小數部分位於兩個整數的中間,其中一個為偶數,另一個為奇數,則返回偶數。

例:

// C# program to demonstrate the  
// Math.Round(Double) method 
using System; 
  
class Geeks { 
  
    // Main method 
    static void Main(string[] args) 
    { 
  
        // Case-1 
        // A double value whose fractional part is  
        // less than the halfway between two  
        // consecutive integers 
        Double dx1 = 12.434565d; 
  
        // Output value will be 12 
        Console.WriteLine("Rounded value of " + dx1 +  
                          " is " + Math.Round(dx1)); 
  
        // Case-2 
        // A double value whose fractional part is  
        // greater than the halfway between two  
        // consecutive integers 
        Double dx2 = 12.634565d; 
  
        // Output value will be 13 
        Console.WriteLine("Rounded value of " + dx2 +  
                          " is " + Math.Round(dx2)); 
    } 
}
輸出:
Rounded value of 12.434565 is 12
Rounded value of 12.634565 is 13

說明:在上麵的代碼中,假設用戶想要將上述指定的double值四舍五入為最接近的整數。因此,編譯器將首先檢查該double值是否大於或小於該double數的偶數和奇數整數值。如果小於中途值,則其輸出將為下限;否則,如果大於中途值,則其輸出將為上限。



Math.Round(Double, Int32)

此方法將雙精度浮點值舍入為指定數目的小數位數。

用法:

public static double Round(double x, Int32 y)

參數:

  • x:要四舍五入的雙浮點數。此參數的類型為System.Double。 y:這是返回值中的小數位數。此參數的類型為System.Int32。

返回類型:它返回最接近x的整數,該整數包含與y相等的小數位數,返回類型為System.Double。

異常:如果y的值小於0或大於15,則此方法將提供ArgumentOutOfRangeException。

例:

// C# program to demonstrate the  
// Math.Round(Double, Int32) method 
using System; 
   
class Geeks { 
   
    // Main method 
    static void Main(string[] args) 
    { 
   
        // double type 
        Double dx1 = 12.434565d; 
   
        // using method 
        Console.WriteLine("Rounded value of " + dx1 +  
                          " is " + Math.Round(dx1, 4)); 
   
        // double type 
        Double dx2 = 12.634565d; 
   
        // using method 
        Console.WriteLine("Rounded value of " + dx2 +  
                          " is " + Math.Round(dx2,2)); 
    } 
}
輸出:
Rounded value of 12.434565 is 12.4346
Rounded value of 12.634565 is 12.63

說明:方法將檢查指定的十進製數字旁邊的數字是否大於或等於5。如果它大於或等於5,則它將遞增前一個數字,否則前一個數字將保持不變。

Math.Round(Decimal)

此方法將精度為128位的十進製值四舍五入到最接近的整數值。



用法:

public static decimal Round(decimal x)

參數:

  • x:是要舍入的十進製數。此參數的類型為System.Decimal。

返回類型:它返回最接近x的整數,返回類型為System.Decimal。

注意:如果x的小數部分位於兩個整數的中間,其中一個為偶數,另一個為奇數,則返回偶數。

例:

// C# program to demonstrate the  
// Math.Round(Decimal) method 
using System; 
  
class Geeks { 
  
    // Main method 
    static void Main(string[] args) 
    { 
  
        // Case-1 
        // A decimal value whose fractional part is  
        // less than the halfway between two  
        // consecutive integers 
        Decimal dec1 = 12.345m; 
  
        Console.WriteLine("Value of dec1 is " + dec1); 
  
        Console.WriteLine("Rounded value of " + dec1 +  
                          " is " + Math.Round(dec1)); 
  
        // Case-2 
        // A double value whose fractional part is  
        // greater than the halfway between two  
        // consecutive integers 
        Decimal dec2 = 12.785m; 
  
        Console.WriteLine("Value of dec2 is " + dec2); 
  
        Console.WriteLine("Rounded value of " + dec2 +  
                          " is " + Math.Round(dec2)); 
    } 
}
輸出:
Value of dec1 is 12.345
Rounded value of 12.345 is 12
Value of dec2 is 12.785
Rounded value of 12.785 is 13

Math.Round(Decimal, Int32)

此方法將十進製值舍入為指定數量的小數位數。

用法:

public static decimal Round(decimal x, Int32 y)

參數:



  • x:要舍入的十進製數。此參數的類型為System.Decimal。 y:這是返回值中的小數位數。此參數的類型為System.Int32。

返回類型:它返回最接近x的整數,該整數包含與y相等的小數位數,返回類型為System.Decimal。

異常:如果y的值小於0或大於15,則此方法將提供ArgumentOutOfRangeException;如果結果超出Decimal的範圍,則此方法將提供OverflowException。

例:

// C# program to demonstrate the  
// Math.Round(Decimal, Int32) method 
using System; 
  
class Geeks { 
  
    // Main Method 
    static void Main(string[] args) 
    { 
  
        // Case - 1 
        // The value of digit after specified  
        // number is less than 5 & Here y = 3 
        Decimal dx1 = 12.2234565m; 
  
        // Output value will be 12.223 
        Console.WriteLine("Rounded value of " + dx1 +  
                          " is " + Math.Round(dx1, 3)); 
  
        // Case - 2 
        // The value of digit after specified  
        // number is greater than 5 & Here y = 4 
        Decimal dx2 = 12.8734765m; 
  
        // Output value will be 12.8735 
        Console.WriteLine("Rounded value of " + dx2 +  
                          " is " + Math.Round(dx2, 4)); 
  
    } 
}
輸出:
Rounded value of 12.2234565 is 12.223
Rounded value of 12.8734765 is 12.8735

注意:上麵的十進製值代碼以類似於Double值的方式工作。小數類型和雙精度類型之間的唯一區別在於精度的概念,即在Double的情況下,精度為64位,在Decimal精度的情況下為128位。

參考: https://docs.microsoft.com/en-us/dotnet/api/system.math.round?view=netframework-4.7.2




相關用法


注:本文由純淨天空篩選整理自keshav_786大神的英文原創作品 C# | Math.Round() Method | Set – 1。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。