fix(36.6/12.2)=2   ???
int(36.6/12.2)=2   ???

解决方案 »

  1.   

    是sp6,部分电脑上存在以上问题,怀疑是cpu问题,可能计算结果应该是2.99999999999999999,抹掉小数当2了
      

  2.   

    int(36.6/12.2+1e-6)本来浮点运算就有误差,C也一样有,稍微加一个误差修正
      

  3.   

    大一学过计算机原理吗?浮点数的小数部分是二进制小数。有限长度的二进制小数无法精确表示所有的十进制小数。它的小数是 0.5, 0.25, 0.125, 0.0625, …… 等“凑”出来的。如果需要精确的十进制小数值,且小数不超过 4 位,建议用 Currency 类型。它是用整数存储的,显示为小数。
      

  4.   

    当小数部分恰好为 0.5 时,Cint 和 CLng 函数会将它转换为最接近的偶数值。例如,0.5 转换为 0、1.5 转换为 2。Cint 和 CLng 函数不同于 Fix 和 Int 函数,Fix 和 Int 函数会将小数部分截断而不是四舍五入。并且 Fix 和 Int 函数总是返回与传入的数据类型相同的值。