浮点数总会有一点微小的误差,LZ有兴趣可以学习一下IEEE754
试试Math.Floor( Math.Round(c, 2) ),不知道行不行,期待楼下的高手

解决方案 »

  1.   

    因为浮点数是没有0这个概念的,所有的数都是有精度的。
    这也就是为什么你一乘会出现869.99999999999989的奇怪数字的原因,因为所有的数字都有一个精度问题,所以使用Double型的值一定要限定一个精度.
      

  2.   

    因为很多浮点小数都是不精确的,
    double   b   =   0.29;
    从这个数储存到计算机中开始,它已经是一个近似数
    你直接输出下b看看计算机里面只有二进制
    十进制小数到二进制小数有个转换过程
    只有2的负幂的和,才是二进制有限小数
    其他都是无限小数,必然会损失精度的~