首页 > 后端开发 > php教程 > javascript 定时器内累加小数后变成16位的浮点数,这是啥意思?

javascript 定时器内累加小数后变成16位的浮点数,这是啥意思?

WBOY
发布: 2016-06-06 20:20:50
原创
1523 人浏览过

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

这难道是坑吗?郁闷。

回复内容:

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

这难道是坑吗?郁闷。

很正常,这是由于精确度造成的问题,不信你试一下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

要利用编程语言计算小数的话最好先转换为整数计算

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板