首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

alert(66*0.5678);计算结果显示“37.474799999999995”,为什么呢,该如何处理

2012-03-11 
alert(66*0.5678)计算结果显示“37.474799999999995”,为什么呢alert(66*0.5678)这两个数相乘,小数点后面

alert(66*0.5678);计算结果显示“37.474799999999995”,为什么呢
alert(66*0.5678);
这两个数相乘,小数点后面顶多四位,javascript为什么会计算出这样的结果呢
计算结果显示“37.474799999999995”


[解决办法]
var xxx=1.2345689;
alert(xxx.toFixed(2));
[解决办法]
66*0.5678

66 为整数类型

0.5678 为浮点类型

浮点类型的范围要比整数类型大,所以66被向上转型为浮点类型,计算结果也就是浮点类型了。
[解决办法]
对于大数字的运算,最保险的办法是按字符串存储,自己写方法计算结果。最好这样的问题在java代码中处理,可以利用BigDecimal这个类来做大数字的运算。

热点排行