各位大侠好:
    我有个问题,想问一下,有个表里做检索,然后用百分数表示比列.结果出现了(比如2项),其中一是22.22%,另一是:77.77%,加起来应该是100%.是算法不对么,还是怎么啊.谢谢
另一种情况是:100.01%(33.21%,45.88%,20.92%)
说明要求保留两位小数.

解决方案 »

  1.   

    个人认为:用ROUND吧。不要用TRUNC。
      

  2.   

    TRUNC(89.985,2)=89.98
    ROUND (89.985) = 90
    应该这个原因造成的。
      

  3.   

    这个明显点!!
    TRUNC (89.985,2)=89.98
    ROUND (89.985, 2) = 89.99
    应该这个原因造成的。
      

  4.   

    没有说清楚,不好意思,不是用的TRUNC,是用的ROUND的.并不是每次都出现的,偶然的时候就出现了.
      

  5.   

    如果运算过程中只有这步运算,那么ORACLE肯定已经想到了,不会出现0.01%误差。
    我同意楼上的,你肯定是在中间运算结果中也做了四舍五入。如果方便,程序能贴吗?