JS中0.1+0.2不等于0.3的问题

一个经典案例:

0.1 + 0.2 !== 0.3;而是0.1 + 0.2 = 0.30000000000000004

JavaScript使用定义的Number类型来表示数字(没有区分int或float的类型),遵循IEEE 754的标准,用64位存储一个数。(1+11+52)

运算过程:

它们在相加的时候第一步会将数字从十进制数转换成二进制数,这个时候因为0.1和0.2转换成二进制的时候尾数发生无限循环,js引擎将对其截取,这个时候精度丢失,截取之后的结果再进行相加并转换。

解决方法:

将浮点数转换成整数,相加之后再进行除法运算

posted @   Jaetyn  阅读(137)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示