舍入浮点值

Dha*_*esh 31 c# floating-point

我有double12.256852651,我希望将其显示12.257为浮点数而不将其转换为字符串类型.

我怎么能在C#中做到这一点?

Cod*_*aos 48

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

Math.Round((Decimal)f, 3, MidpointRounding.AwayFromZero)
Run Code Online (Sandbox Code Playgroud)

您还应该考虑选择MidpointRounding,因为默认情况下这会使用Banker的圆形,这不是您从学校习惯的.


Ode*_*ded 10

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

如果要进行入以便稍后在计算中使用它,请使用Math.Round((decimal)myDouble, 3).

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