js中二进制浮点数和四舍五入错误

版权声明: https://blog.csdn.net/weixin_39823527/article/details/80754788

js采用IEEE-754浮点数表示法(几乎所有现代编程语言采用),这是一种二进制表示法,可以精确的表示分数如 1/2、1/4、1/8和1/1024。但遗憾的是我们经常用的分数(特别是金融方面)都是十进制分数1/10、1/100等。二进制浮点数表示法并不能精确表示累0.1这简单的数字。

js中的数字具有足够的精度,并可以即期近似于0.1。但数字不能精确表述的确带来一些问题。如

var x = 0.3-0.2

var y = 0.2-0.1

x == y    //false两值不相等

由于舍入误差。0.3-0.2的近似差值使劲上并不等于02.-0.1的近视差。但x和y的值非常接近彼此和最终的正确值。

注意:这种情况并不是js中才会出现,在任何采用二进制浮点数的编程语言中都会出现这个问题。

猜你喜欢

转载自blog.csdn.net/weixin_39823527/article/details/80754788
今日推荐