圆十进制值最接近0.01?

时间:2010-02-08 05:38:10

标签: c# numbers rounding

  

可能重复:
  c# - How do I round a decimal value to 2 decimal places (for output on a page)

How to round decimal value up to nearest 0.05 value??,链接的SO帖子也讨论了类似的主题,但它不是我预期的输出。

我需要像这样转换小数值

16.489-->16.49
16.482-->16.48
16.425-->16.43
7.67 --> 7.67 (no conversion)

我可以使用下面的C#方法转换值

  Math.Round(16.482*20)/20;

但这种方法对我不起作用,它给出了以下结果

16.489-->16.5 
16.482-->16.5 
7.67 --> 7.7
16.425-->16.45 

c#中的优雅方式是做到这一点。

2 个答案:

答案 0 :(得分:14)

Math..::.Round Method (Decimal, Int32, MidpointRounding)

将双精度浮点值舍入到指定的小数位数。如果值在两个其他数字之间的中间位置,则参数指定如何舍入值。

   Math.Round(1.489,2,MidpointRounding.AwayFromZero)

答案 1 :(得分:2)

你试过吗

 Math.Round(16.482*200)/200;