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引擎将对其截取,这个时候精度丢失,截取之后的结果再进行相加并转换。
解决方法:
将浮点数转换成整数,相加之后再进行除法运算
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?