代码之家  ›  专栏  ›  技术社区  ›  RameshVel

四舍五入到最接近的0.01?[复制品]

  •  5
  • RameshVel  · 技术社区  · 14 年前

    可能重复:
    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 post也讨论了类似的主题,但它不是我期望的输出。

    我需要像这样转换十进制值

    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 回复  |  直到 14 年前
        1
  •  14
  •   Fredou    14 年前

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

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

       Math.Round(1.489,2,MidpointRounding.AwayFromZero)
    
        2
  •  2
  •   Anthony    14 年前

    你试过吗?

     Math.Round(16.482*200)/200;