奇怪的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 了
  对于浮点数字,我们要小心。用到时可以先把其转为整数,然后再换回来。

posted on 2004-08-09 12:34  阿艺  阅读(644)  评论(4)    收藏  举报

导航