javascript 定时器内累加小数后变成16位的浮点数,这是啥意思?
请看这:
<code>var startNum = 1;
setInterval(function ()
{
startNum += 0.1;
console.log(startNum);
}, 500);</code>打印出来是这样的:
1.1
1.2000000000000002
1.3000000000000003
1.4000000000000004
1.5000000000000004
1.6000000000000005
立即学习“Java免费学习笔记(深入)”;
这难道是坑吗?郁闷。
javascript 定时器内累加小数后变成16位的浮点数,这是啥意思?
请看这:
<code>var startNum = 1;
setInterval(function ()
{
startNum += 0.1;
console.log(startNum);
}, 500);</code>打印出来是这样的:
1.1
1.2000000000000002
1.3000000000000003
1.4000000000000004
1.5000000000000004
1.6000000000000005
立即学习“Java免费学习笔记(深入)”;
这难道是坑吗?郁闷。
很正常,这是由于精确度造成的问题,不信你试一下0.1+0.2不等于0.3。
http://segmentfault.com/q/1010000000137297
看这个标准 http://www.baidu.com/link?url=ax1PkOuwwFU_KTyr29jOuhSr9v-i-Zg8fqAqty9Xbo_2oLAYg-_2CIIPeo3HKbXV3ohudDm6DKjK4rvzhGwao2rsRd7MF6QsEwQO9ShILXc1nIK3oHeI90MDFEyXBmtcTmhycPcznpwUvWH_emJzZ7IMNbn99fBEs8G4iphb32e&wd=&eqid=9ac65804000049bc00000005568e60b4
要利用编程语言计算小数的话最好先转换为整数计算
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号