簡體   English   中英

將小數點后四舍五入到小數點后兩位

[英]Rounding decimal number upto two decimal places

我正在嘗試將十進制數字四舍五入到小數點后兩位,這很正常。 我正在做如下:

Math.Round(Amount, 2)

因此,如果我的金額為40000.4567 ,我得到的40000.46 現在的問題是我有一個小數,例如40000.0000 ,當我四舍五入時,結果是40000 ,而我真正想要的是40000.00 因此,回合將始終忽略尾隨零。

為了解決這個問題,我可以選擇將其轉換為字符串並使用format,但是我不想這樣做,因為那樣效率低下,我相信必須有一些方法可以更好地做到這一點。

我也嘗試過類似的東西

Decimal.Round(Amount, 2)

現在一種方法可以是檢查數字是否包含小數部分,並相應地使用舍入函數,但這確實是一種糟糕的方法。 由於明顯與數量有關的原因,我也不能使用截斷。

怎么回事?

正確的,但四舍五入你不明白, 價值不是格式。 兩個值4000040000.00之間沒有區別 ,並且類似3.1

只需使用格式將任何數字輸出到小數點后兩位,例如:

Console.WriteLine(String.Format("{0:0.00}", value));

要么:

Console.WriteLine(value.ToString("0.00"));

您正在混合兩件事-舍入和輸出格式化。 為了以所需格式輸出數字,可以使用函數string.Format和所需格式,例如:

decimal number = 1234.567m;
string.Format("{0:#.00}", number);

您可以在MSDN中閱讀有關自定義數字格式字符串的更多信息

我認為您正在尋找的是顯示兩個小數,即使它們是零。 您可以為此使用string.Format(我也將它與Round結合在一起):

Console.WriteLine(string.Format("{0:0.00}", Math.Round(Amount, 2));

舍入十進制數可以使用

decimal number=200.5555m;
number= Math.Round(number, 2);
string numString= string.Format("{0:0.00}", number);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM