奇怪的0.49问题---flash里遇到的
奇怪的.49问题:新建一个flash文件,写trace(16.49-16);
输出的结果竟然是0.489999999999998!!!!!!!!
然后写trace(16.49-15);输出1.49,没有问题!!!!
trace(16.49-15-1);输出0.489999999999998!!!!!
flash计算浮点数字时,有时会出现问题,就像上面所遇的一样,这是编程语言经常会碰到的问题,并不是flash不会算数,可以参考 Macromedia 网站的技术支持:
http://www.macromedia.com/support/flash/documents/flash/documents/roundoff_reeor.htm
解决的方法是用 Math.round(),
在你的例子中:
trace(Math.round((16.49-16)*100)/100)
就可以输出 0.49 了
对于浮点数字,我们要小心。用到时可以先把其转为整数,然后再换回来。
浙公网安备 33010602011771号