吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3581|回复: 24
收起左侧

[其他转载] 在js里发现了一个有趣的现象

[复制链接]
52.Carl 发表于 2018-11-28 19:33
就在刚刚我们讲师上课发现的一个好玩儿的bug,是属于js里的 当你在js里编写下:
console.log(0.1+0.2);
这一条代码后,控制台输出的内容为:
0.30000000000000004
就是0.3后边出现了15个0和一个4而再写其它的就不会有这样的bug我们讲师说这估计是应为在js里不常用所以就没有修复说是更新了几回了都没有修复这个bug而且这个bug还是给我们出考题的老师发现的。。。。。。足以说明我们的考题有多么变态!!!! 新人第一次发帖,请多关照

这是代码

这是代码

这是控制台输出的内容

这是控制台输出的内容

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Einsten.M 发表于 2018-11-28 20:07
浮点数相加精度失真,所有语言都会有的。。
War-Horse 发表于 2018-11-28 20:26
精度失真很常见,所以一般来说编程语言都会提供用于高精度计算的类,比如Java的BigDecimal,不过一般来说,普通的项目是没有那么高的精度需求的,所以常用数据类型在大部分情况下适用
 楼主| 52.Carl 发表于 2018-11-28 19:35
这个logo加的有点瑕疵啊。。。。
源码如下:
console.log(0.1+0.2);
console.log(0.2+0.2);
用温柔将我杀死 发表于 2018-11-28 19:36
向大神学习
weemy96 发表于 2018-11-28 19:43
console.log(0.3+0.6)
出来结果是 0.8999999999999999
主要是二进制的关系
15230916103 发表于 2018-11-28 20:11
向大佬学习
马桶下的一片海 发表于 2018-11-28 20:15
我们老师说,是因为计算方法不同
 楼主| 52.Carl 发表于 2018-11-28 20:29
Einsten.M 发表于 2018-11-28 20:07
浮点数相加精度失真,所有语言都会有的。。

是吗,,,,,第一次发现这种情况感觉很稀奇唉
 楼主| 52.Carl 发表于 2018-11-28 20:30
weemy96 发表于 2018-11-28 19:43
console.log(0.3+0.6)
出来结果是 0.8999999999999999
主要是二进制的关系

哦哦,这样啊,那我试试去
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 22:19

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表