C# 中的 float、Double 和 Decimal

Muhammad Maisam Abbas 2023年1月30日 2021年4月29日
  1. C# 中的浮點數資料型別
  2. C# 中的 Double 資料型別
  3. C# 中的十進位制資料型別
  4. C# 中的浮點數,雙精度數和十進位制數
C# 中的 float、Double 和 Decimal

本教程將討論 C# 中的浮點數、雙精度數和十進位制數資料型別之間的異同。

C# 中的浮點數資料型別

浮點數資料型別在 C# 中儲存浮點值。float 關鍵字用於宣告一個 float 變數。我們必須在初始化過程中使用 f 說明符來告訴編譯器該值是浮點值。浮點變數的大小為 32 位,這意味著它可以儲存從 -3.402823e38+3.402823e38 的值。浮點變數在 C# 中的精度為 7 位。以下程式碼示例向我們展示瞭如何在 C# 中宣告一個 float 變數。

using System;

namespace data_types
{
        static void Main(string[] args)
        {
            float fval = 100.0f/3;
            Console.WriteLine(fval);
        }
    }
}

輸出:

33.33333

我們在 C# 中使用 float 關鍵字和 f 指定符初始化了 float 變數 fval。列印輸出顯示,fval 的精度僅為 7 位。

C# 中的 Double 資料型別

Double 資料型別也將浮點值儲存在 C# 中。double 關鍵字用於宣告一個 double 變數。我們必須在初始化期間使用 d 指示符來告知編譯器該值為雙精度值。雙精度變數的大小為 64 位,這意味著它可以儲存從 -1.79769313486232e308+1.79769313486232e308 的值。在 C# 中,雙精度變數的精度為 15 位。以下程式碼示例向我們展示瞭如何在 C# 中宣告一個 double 變數。

using System;

namespace data_types
{
        static void Main(string[] args)
        {
            double dval = 100.0d / 3;
            Console.WriteLine(dval);
        }
    }
}

輸出:

33.3333333333333

我們在 C# 中使用 double 關鍵字和 d 指定符初始化了雙變數 dval。列印輸出顯示,dval 的精度為 15 位。

C# 中的十進位制資料型別

十進位制資料型別也將浮點值儲存在 C# 中。decimal 關鍵字用於宣告一個十進位制變數。在初始化過程中,我們必須使用 M 說明符來告知編譯器該值為十進位制值。十進位制變數的大小為 128 位,這意味著它可以儲存從 -79,228,162,514,264,337,593,543,950,335+79,228,162,514,264,337,593,543,950,335 的值。在 C# 中,十進位制變數的精度為 29 位。以下程式碼示例向我們展示瞭如何在 C# 中宣告一個十進位制變數。

using System;

namespace data_types
{
        static void Main(string[] args)
        {
            decimal dval = 100.0M / 3;
            Console.WriteLine(dval);
        }
    }
}

輸出:

33.333333333333333333333333333

我們在 C# 中使用 decimal 關鍵字和 M 指定符初始化了十進位制變數 dval。列印輸出顯示,dval 的精度為 29 位。

C# 中的浮點數,雙精度數和十進位制數

floatdouble 資料型別的精度和大小低於 decimal 資料型別。因此,建議使用十進位制資料型別來記錄需要大量重要數字(例如金融交易)的敏感資訊。但是,十進位制資料型別比浮點型和雙精度資料型別慢得多。因此,每當我們處理一些已經是近似值並且不需要非常高的精度的科學值時,我們都可以根據需要使用 floatdouble 資料型別。

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 Float

相關文章 - Csharp Double

相關文章 - Csharp Decimal