舍入浮点值

时间:2011-11-23 09:40:05

标签: c# floating-point

我的double值为12.256852651,我希望将其显示为12.257作为浮点数而不将其转换为字符串类型。

我怎样才能在C#中做到?

2 个答案:

答案 0 :(得分:45)

我首先转换为Decimal,然后对结果使用Math.Round。这种转换并不是绝对必要的,但如果我在使用二进制浮点数时舍入到小数位,我总觉得有些不安。

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

您还应该查看MidpointRounding的选择,因为默认情况下这会使用银行家的轮次,这不是您从学校习惯的。

答案 1 :(得分:9)

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

如果您想围绕以便稍后在计算中使用它,请使用Math.Round((decimal)myDouble, 3)

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