1
我有一個格式問題與該行:Convert.ToDecimal(的String.Format( 「{0:##}」,doubleAmount))不喜歡0.0
Decimal amount = Convert.ToDecimal(String.Format("{0:.##}", doubleAmount));
如果doubleAmount
是0.0,它會拋出一個格式異常。我如何處理0.0?
我有一個格式問題與該行:Convert.ToDecimal(的String.Format( 「{0:##}」,doubleAmount))不喜歡0.0
Decimal amount = Convert.ToDecimal(String.Format("{0:.##}", doubleAmount));
如果doubleAmount
是0.0,它會拋出一個格式異常。我如何處理0.0?
問題是格式字符串{0:.##}
將0格式化爲空字符串,但 空字符串不是Convert.ToDecimal
的有效參數。爲避免出現可能的FormatException,可以使用{0:0.##}
將0123作爲0
格式化爲0。
(用戶sasfrog建議{0:#.##}
,但自認爲也能格式化0爲空字符串,這是行不通的。)
不過,如果你只是想爲double值四捨五入到小數點後兩位,並將結果存儲在一個十進制變量中,那麼您應該使用
Decimal amount = Decimal.Round((Decimal)doubleAmount, 2, MidpointRounding.AwayFromZero);
並跳過字符串格式化和解析的不必要開銷。
使用'{0:0。##}'確保至少有一位數字。 –
嘗試使用'{0:#。##}'來容納整數分量。 – sasfrog
假設'doubleAmount'是一個double,爲什麼要將它轉換爲一個字符串,然後轉換爲'Decimal'而不是直接轉換爲'Decimal'? –