Rounding of float values

2020-02-09 06:06发布

I have the double value like 12.256852651 and I want to display it as 12.257 as a float number without converting it in to a string type.

How can I do it in C# ?

2条回答
叼着烟拽天下
2楼-- · 2020-02-09 06:21

If you want to display it, it will be a string and that's what you need to use.

If you want to round in order to use it later in calculations, use Math.Round((decimal)myDouble, 3).

If you don't intend to use it in calculation but need to display it, use double.ToString("F3").

查看更多
聊天终结者
3楼-- · 2020-02-09 06:31

I'd first convert to Decimal and then use Math.Round on the result. This conversion is not strictly necessary, but I always feel a bit uneasy if I round to decimal places while using binary floating points.

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

You should also look into the choice of MidpointRounding, since by default this uses Banker's round, which is not what you are used to from school.

查看更多
登录 后发表回答