在C#中,用於貨幣的最佳資料型別是什麼?


在C#中,用於貨幣的最佳資料型別是decimal。decimal型別是一個128位資料型別,適用於財務和貨幣計算。decimal型別可以表示從1.0 * 10^-28到大約7.9 * 10^28的數值,具有28-29位有效數字。要初始化一個decimal變數,請使用字尾m或M。

decimal b = 2.1m;

下面的例子顯示了decimal型別的最小值和最大值。

示例

 線上演示

using System;
namespace DemoApplication{
   public class Program{
      public static void Main(){
         Console.WriteLine($"Deciaml Min Value: {decimal.MinValue}");
         Console.WriteLine($"Deciaml Max Value: {decimal.MaxValue}");
         Console.ReadLine();
      }
   }
}

輸出

Deciaml Min Value: -79228162514264337593543950335 

Deciaml Max Value: 79228162514264337593543950335


decimal型別的有限值集的形式為(-1)^s * c * 10^-e,其中符號s為0或1,係數c由0 <= *c* < 2^96給出,比例e滿足0 <= e <= 28。decimal型別不支援帶符號的零、無窮大或NaN。decimal表示為一個96位整數,乘以10的冪。對於絕對值小於1.0m的十進位制數,其值精確到小數點後第28位,但不會更精確。

對於絕對值大於或等於1.0m的十進位制數,其值精確到28或29位。與float和double資料型別相反,十進位制小數(例如0.1)可以在十進位制表示中精確表示。在float和double表示中,這樣的數字通常是無限小數,這使得這些表示更容易出現舍入誤差。

decimal型別優於float和double,因為它具有更高的精度,並且範圍小於float和double。

示例

讓我們考慮一個將美元轉換為印度盧比的例子。

 線上演示

using System;
namespace DemoApplication{
   public class Program{
      public static void Main(){
         decimal usd = 2.5m;
         Console.WriteLine($"USD: {usd}");
         decimal inrOfOneUSD = 75.04m;
         Console.WriteLine($"INR value of one USD: {inrOfOneUSD}");
         decimal inr = usd * inrOfOneUSD;
         Console.WriteLine($"INR value: {inr}");
         Console.ReadLine();
      }
   }
}

輸出

上述程式碼的輸出是

USD: 2.5
INR value of one USD: 75.04
INR value: 187.600

更新於:2020年8月19日

6000+ 次檢視

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.