在js里发现了一个有趣的现象
就在刚刚我们讲师上课发现的一个好玩儿的bug,是属于js里的 当你在js里编写下:console.log(0.1+0.2);
这一条代码后,控制台输出的内容为:
0.30000000000000004
就是0.3后边出现了15个0和一个4而再写其它的就不会有这样的bug了我们讲师说这估计是应为在js里不常用所以就没有修复说是更新了几回了都没有修复这个bug而且这个bug还是给我们出考题的老师发现的。。。。。。足以说明我们的考题有多么变态!!!! 新人第一次发帖,请多关照 浮点数相加精度失真,所有语言都会有的。。 精度失真很常见,所以一般来说编程语言都会提供用于高精度计算的类,比如Java的BigDecimal,不过一般来说,普通的项目是没有那么高的精度需求的,所以常用数据类型在大部分情况下适用 这个logo加的有点瑕疵啊。。。。
源码如下:
console.log(0.1+0.2);
console.log(0.2+0.2); 向大神学习 console.log(0.3+0.6)
出来结果是 0.8999999999999999
主要是二进制的关系 向大佬学习 我们老师说,是因为计算方法不同:eee Einsten.M 发表于 2018-11-28 20:07
浮点数相加精度失真,所有语言都会有的。。
是吗,,,,,第一次发现这种情况感觉很稀奇唉
weemy96 发表于 2018-11-28 19:43
console.log(0.3+0.6)
出来结果是 0.8999999999999999
主要是二进制的关系
哦哦,这样啊,那我试试去