问题:
下面的运算为什么它不能是正确的运算呢?因为我要的是准确的数据,而不是要一个约等的!
(0.1-0.08) == 0.020000000000000004
我的运算中只是二位小数,但是是希望所有的小数也适用的方法!
除了把小数转换成整数运算完成后再还原回小数的方法来运算外,能否有更加方便的正确的方法,不能要四舍五入的方法!因为要是进行乘除时就会相差.
我希望有一个涵数什么的,比如转换成相同等级后它就不再出现约等的算法!
用vbscript吧:
<script language="vbscript">
function test()
dim a1,a2
a1=0.1
a2=0.08
msgbox a1-a2
end function
</script>
浮点数运算肯定有误差,原则上只能把小数转换成整数运算完成后再还原回小数。或者借助字符串过渡。
在结果中加上转换,定义小数位数。
double型和float型都这样的,这是他存储时候的问题
你自己也说了方法了
你怕有偏差
就在运算前把所有数字全部乘以100他转换成整数,最后再除以100.00就可以了
to hbhbhbhbhb1021(天外水火) (
---------------
“运算前把所有数字全部乘以100他转换成整数,最后再除以100.00”也是不行的,因为乘100、除100本身就是浮点运算,也会出误差。应该把“乘100、除100”的工作用字符串解析来代替,解析完毕再转换为整数,进行运算,运算完的结果用字符串解析的方式加上小数点,返回