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

0.7*三=2.0999999999996

2013-02-24 
0.7*32.0999999999996?今天写脚本的时候,alert(0.7*3)竟然等于2.099999999996,有人知道是怎么回事么?[解

0.7*3=2.0999999999996?
今天写脚本的时候,alert(0.7*3);竟然等于2.099999999996,有人知道是怎么回事么?
[解决办法]
又遇到这样的问题。
这是由于浮点数的精确度问题,基于IEEE754数值计算浮点数的通病,规避方法,确定你的数值的精确度,如加上toFixed(5),表示小数点后保留5位,四舍五入。
如alert((0.7*3).toFixed(5))
[解决办法]
javascript的浮点数计算会产生舍入误差的问题。
浮点数值的最高精度是17位,但是在进行计算时其精度远远不如整数。例如0.1+0.2的结果不是0.3,而是0.30000000000000004。这个小小的误差会导致无法测试指定的浮点数值。


//不要做这样的测试
if (a + b == 0.3) {
    alert('result is 0.3');
}

热点排行