Math.Round(2.314, 2) //2.31
Math.Round(2.301, 2) //2.3 , but I want this as 2.30
回答
數字在小數點後沒有任何零概念。
你實際上是在問如何將數字轉換成字符串與額外的零:
(2.301).ToString("0.00") // "2.30"
更多細節見numeric format strings。
特別是,0
說明符將從零開始捨去。
我認爲OP仍然需要先調用Math.Round,因爲ToString將會截斷,即'(2.309).ToString(「0.00」)'將變成'2.30'。 – mayabelle
@mayabelle:錯了。(嘗試它) – SLaks
+1 ...應該由同義詞搜索SO ...建立你自己的截斷標題:'{「limit」,「keep」,「preserve」,「leave」,「show」} {1在{「float」,「double」,「decimal」,「number」中爲{},「1,2,3」,「1,2,3」,用於} {「小數位數」,「小數點後」,「數字」,「數字」 「......」「......」 –
2.3和2.30是一回事。如果你想要字符串 2.30,那麼在Math.Round函數上使用.ToString(「F2」)。
從代碼的角度來看,2.3和2.30是一樣的。您可以通過格式化字符串顯示尾隨零:
string yourString = Math.Round(2.301, 3).ToString("0.00");
小數仍然存在,你可能只是沒有看到,因爲當你在看的字符串表示,在默認情況下它會忽略尾隨零。你可以通過傳遞一個格式字符串覆蓋此行爲ToString()
:
Console.WriteLine(Math.Round(2.301, 2).ToString("N2")) // 2.30
不過,當然,如果這只是用於顯示目的,你並不真的需要調用Math.Round
:
Console.WriteLine(2.301.ToString("N2")) // 2.30
進一步閱讀
你想要的數字的字符串格式:
string val = Math.Round(2.301, 2).ToString("F2");
如果使用decimal
號碼(其文字結束與m
,對 「錢」),你得到你以後的行爲。 double
號碼沒有像decimal
那樣有重要零的概念。
Math.Round(2.314m, 2);
Math.Round(2.301m, 2);
或者,如果你想改變你怎麼看這些數字,你可以使用一個string format:
Math.Round(2.314, 2).ToString("N2");
Math.Round(2.301, 2).ToString("N2");
- 1. Math.Round數字,3位小數
- 2. Math.Round不保留結尾零
- 3. C#小數只保留2位小數
- 4. 整數加倍並保留小數位
- 5. 保留toString中的小數位數
- 6. 請輸入保留兩位小數
- 7. 如何保留兩位小數點
- 8. 的Javascript保留小數點後一位
- 9. PI小數使用Math.Round
- 10. 如何保留零位小數位爲零?
- 11. 的JavaScript Math.round:犯規圓形物體到1位小數
- 12. Math.round()來控制小數位不起作用
- 13. qt C++「QString :: number」不需要保留小數位數
- 14. PHP數字格式保留2位小數
- 15. 四捨五入到下一個數保留兩位小數
- 16. 在python中,如何保留數字中的小數位?
- 17. 如何保留兩位小數始終顯示的數字 - Angularjs
- 18. JAVA:劃分2個大小數並保留小數點後的最大位數
- 19. 如何在一位小數後結束,但保留兩列?
- 20. 在java中保留精確到小數位的精確度
- 21. 你如何在Javascript中保留兩位小數?
- 22. 如何在delphi中保留2位小數?
- 23. 轉換秒的時間保留兩位小數
- 24. 格式化浮子###。##(保留兩位小數)
- 25. 在Python中最多保留兩位小數的算術運算?
- 26. XQuery - 如何啓用sql:變量來保留小數位
- 27. 只保留字符串中的一位小數
- 28. 轉換爲十進制並舍入保留2位小數
- 29. java.math.BigDecimal並不總是用於保留兩位小數?
- 30. 刪除小數點但保留數字
應DUP的類似的問題百名。你應該使用適當的格式來打印數字('2.3'和'2.30'是'float' /'double' /'decimal'的相同值) –
也是這個[限制雙精度到小數點後3位](http: /stackoverflow.com/questions/3814190/limiting-double-to-3-decimal-places)解釋你現在的問題。 –