浮点数计算问题 console.log(0.1+0.2)为什么不是0.3

浮点数计算问题 console.log(0.1+0.2)为什么不是0.3

image

都这样的,浮点运算都不精确的,但是误差很小,可以用.toFixed(保留位数)来去掉误差。

1赞

麻烦你去重新听计算机的第一堂课, 二进制!!了解清楚了你就知道为什么 浮点数计算会有误差!!

目测不是计算机专业的

谢谢解答~~

只要是浮点数都会出现这样的问题 就算你用一个整数去除于10都有可能会出现

不同进制转换一般不能完全适配。
例如,3进制的0.1,用十进制表示是0.333333333333333333…,无限循环怎么表示嘛,只好截取近似。
同理,误差就这样来了。

用C++测试输出好像就没问题,等于0.3

可以百度下bignumber

原理下,二进制下无法准确的表示 0.1和0.2 ,所以加起来的结果也只是近似