关于c#:舍入浮点值

Rounding of float values

我有像12.256852651那样的double值,我想把它显示为一个浮点数,而不把它转换成字符串类型。

我怎样才能用C语言呢?


我先转换成Decimal,然后在结果上使用Math.Round。这种转换并不是绝对必要的,但是如果在使用二进制浮点数的同时将小数点四舍五入,我总是会感到有点不安。

1
Math.Round((Decimal)f, 3, MidpointRounding.AwayFromZero)

你还应该研究一下MidpointRounding的选择,因为默认情况下,它使用的是银行轮,而不是你在学校习惯的那种。


如果您想显示它,它将是一个字符串,这是您需要使用的。

如果要在以后的计算中使用四舍五入,请使用Math.Round((decimal)myDouble, 3)

如果您不打算在计算中使用它,但需要显示它,请使用double.ToString("F3")