c# form教學 - C#將一個double變量轉換為十進制




winform登入 windows (5)

您可以像這樣將double轉換為小數,而不需要M literal後綴:

double dbl = 1.2345D;
decimal dec = (decimal) dbl;

在聲明新的文字十進制值時應使用M

decimal dec = 123.45M;

(如果沒有M ,123.45被視為雙精度而不會編譯。)

這對某些人來說似乎是一個愚蠢的問題,但我需要將一個雙精度數轉換成十進制來用作貨幣。 M去哪兒了?

decimal dtot = (decimal)(doubleTotal);

你只使用M作為數字文字,當你把它投射時:

decimal dtot = (decimal)doubleTotal;

請注意,浮點數不適合保持精確值,因此如果首先將數字相加然後轉換為Decimal ,則可能會出現舍入錯誤。 您可能希望在將數字添加到一起之前將其轉換為Decimal ,或者確保數字首先不是浮點數。


使用默認轉換類: Convert.ToDecimal(Double)


Convert.ToDecimal(the double you are trying to convert);

Daniel Solis的書中引用了這個問題。

所有預定義類型都直接映射到底層.NET類型。C#類型名稱(字符串)只是.NET類型(String或System.String)的別名,因此使用.NET名稱在語法上可以很好地工作,儘管不鼓勵這樣做。在C#程序中,您應該使用C#名稱而不是.NET名稱。







c# casting decimal currency