第一种
var a=(1/3);
trace(a); // 输出 0.333333333333333
trace(a*3); // 输出 1
到这里为止的计算没有问题,那么接下来看看所出现的问题
var b=a.toString(); //把a转换为文字
var c=Number(b); //再把文字转换为数字
trace(c); // 输出 0.333333333333333
trace(c*3); // 输出 0.999999999999999
看看问题是不是出现了呢?0.99999999999999并不是我们的准确答案,这通常会发生在制作计算器(calculator)时会出现
同上都是数字转换文字后再转换为数字的问题,解决方法是不要自己定义小数
var a = 1/3; //改用变量这类复杂的计算容易出错
第四种 var a=1000*Math.PI/180;在角度和弧度转换时的错误,最好角度值不要太大。角度在360内是绝对没有问题的
第五种var a=(99.9-0.1);
trace(a==99.8);// 输出 false这类比较严重,所以尽量避免使用。如果是非要这样判断的话,就把a转换为文字后比较才可以解决 第六种
输出为 9.9
9.8
9.7
9.6
9.5
9.4
9.3
9.2
9.1
9
8.9
8.8
8.7
8.6
8.50000000000001
8.40000000000001
8.30000000000001
8.20000000000001
8.10000000000001
8.00000000000001第七种
输出为
-1大数目与小数点相加的错误
以上都是大家常会犯上的错误,逻辑上是没错但却又找不到问题所在。所以要以Flash做大量的计算的话还是需要考虑清楚选择5ucms.org 选择未来
上一篇:5ucms仿站,如何防止SWF文件被反编译 下一篇:5ucms培训,如何做好一个多人配合的flash项目 |
|
本站声明:本网站所载文章等内容,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权及其它问题,请在30日内与本网联系(Email:3876307#qq.com),我们将在第一时间删除内容。若原创内容转载请注明出处。 5ucms帮助AS计算方面的错误的关键词: |