Math.Round不保持尾随零

Bla*_*de3 11 c# rounding

我需要将所有值四舍五入到小数点后两位.所以1.401应该会回到1.40,但是Math.Round(value, 2)会回到1.4.

如何强制尾随零?

Pau*_*ips 23

1.4是一样的1.40- 你只想以不同的方式显示它.调用时使用格式字符串ToString- 比如value.ToString("0.00")


Sta*_* R. 14

1.4 == 1.40 唯一一次你需要一个尾随0是你显示数字..我将它格式化为字符串.

.ToString("N2");
Run Code Online (Sandbox Code Playgroud)


ADr*_*ger 8

我知道这是一个老问题,但可能对某人有帮助!

我使用ac#xml类填充然后序列化为xml.其中一个值是双倍的.如果我为该值指定一个'7',那么当我实际需要'7.00'时,它会被序列化为'7'.最简单的方法就是:

foo = doubleValue + 0.00M
Run Code Online (Sandbox Code Playgroud)

这使得值7.00而不是7.认为这比做ToString然后解析它更好.


Joe*_*oey 5

尾随零更多的是格式而不是值问题,因此请使用

foo.ToString("0.00")
Run Code Online (Sandbox Code Playgroud)


eve*_*ton 5

尾随零只是一个演示。从数学角度看,1.401.4是等价的。

使用格式来代替显示 2 位小数:

String.Format("{0:0.00}", 1.4);

or

yourNumber.ToString("0.00");
Run Code Online (Sandbox Code Playgroud)