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)解释你现在的问题。 –