在 C# 中將雙精度值四捨五入為整數值

Muhammad Maisam Abbas 2023年1月30日 2021年3月21日
  1. 使用 C# 中的 Math.Ceiling() 函式將雙精度值四捨五入為整數值
  2. 使用 C# 中的 Math.Floor() 函式將雙精度值四捨五入為整數值
  3. 使用 C# 中的 Math.Round() 函式將雙精度值四捨五入為整數值
在 C# 中將雙精度值四捨五入為整數值

本教程將討論在 C# 中將雙精度值四捨五入為整數值的方法。

使用 C# 中的 Math.Ceiling() 函式將雙精度值四捨五入為整數值

如果要將整數值 2.5 舍入為整數值 3,則必須使用 Math.Ceiling() 函式。Math.Ceiling() 函式將十進位制值四捨五入到下一個整數值。下面的程式碼示例向我們展示瞭如何使用 C# 中的 Math.Ceiling() 函式將雙精度值四捨五入為整數值。

using System;

namespace round_double_to_intt
{
    class Program
    {
        static void Main(string[] args)
        {
            double d = 2.5;
            int i = (int)Math.Ceiling(d);
            Console.WriteLine("Original Value = {0}", d);
            Console.WriteLine("Rounded Value = {0}", i);   
        }
    }
}

輸出:

Original Value = 2.5
Rounded Value = 3

我們使用 C# 中的 Math.Ceiling() 函式將雙精度值 2.5 舍入為整數值 3。這種方法的問題在於,Math.Ceiling() 函式會將小數值 2.3 轉換為整數值 3

使用 C# 中的 Math.Floor() 函式將雙精度值四捨五入為整數值

如果想將雙精度值 2.5 舍入為整數值 2,則必須使用 Math.Floor() 函式。Math.Floor() 函式將一個小數值舍入為前一個整數值。下面的程式碼示例向我們展示瞭如何使用 C# 中的 Math.Floor() 函式將雙精度值四捨五入為整數值。

using System;

namespace round_double_to_intt
{
    class Program
    {
        static void Main(string[] args)
        {
            double d = 2.5;
            int i = (int)Math.Floor(d);
            Console.WriteLine("Original Value = {0}", d);
            Console.WriteLine("Rounded Value = {0}", i);   
        }
    }
}

輸出:

Original Value = 2.5
Rounded Value = 2

我們使用 C# 中的 Math.Floor() 函式將雙精度值 2.5 舍入為整數值 2。這種方法的問題在於,Math.Floor() 函式會將十進位制值 2.9 轉換為整數值 2

使用 C# 中的 Math.Round() 函式將雙精度值四捨五入為整數值

在 C# 中,Math.Round() 函式可用於將雙精度值四捨五入最接近的整數值。Math.Round() 函式返回一個雙精度值,該值將四捨五入到最接近的整數。下面的程式碼示例向我們展示瞭如何使用 C# 中的 Math.Round() 函式將雙精度值四捨五入為整數值。

using System;

namespace round_double_to_intt
{
    class Program
    {
        static void Main(string[] args)
        {
            double d = 2.9;
            int i = (int)Math.Round(d);
            Console.WriteLine("Original Value = {0}", d);
            Console.WriteLine("Rounded Value = {0}", i);
            
        }
    }
}

輸出:

Original Value = 2.9
Rounded Value = 3

我們使用 C# 中的 Math.Round() 函式將小數值 2.9 舍入為整數值 3。我們使用型別轉換將 Math.Round() 函式返回的雙精度值轉換為整數值。這種方法只有一個問題。Math.Round() 函式將十進位制值 2.5 轉換為整數值 2

我們可以通過在 Math.Round() 函式的引數中指定 MidpointRounding.AwayFromZero 來解決此問題。下面的程式碼示例向我們展示瞭如何使用 C# 中的 Math.Round() 函式將 2.5 舍入為 3

using System;

namespace round_double_to_intt
{
    class Program
    {
        static void Main(string[] args)
        {
            double d = 2.5;
            int i = (int)Math.Round(d, MidpointRounding.AwayFromZero);
            Console.WriteLine("Original Value = {0}", d);
            Console.WriteLine("Rounded Value = {0}", i);       
        }
    }
}

輸出:

Original Value = 2.5
Rounded Value = 3

通過在 C# 中的 Math.Round() 函式中指定 MidpointRounding.AwayFromZero 引數,將十進位制值 2.5 舍入為整數值 3

上面討論的所有方法在不同的特定情況下都是有用的。將雙精度值四捨五入為整數值的最壞方法是通過顯式型別轉換。這是因為顯式型別轉換會忽略小數點後的所有值,而只返回小數點前的整數值。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

相關文章 - Csharp Double