解决0.1+0.2 !== 0.3的问题

112 阅读1分钟

碰到个计算的小问题,0.1+0.2 !== 0.3,咋0.1+0.2就不等于0.3了。我打开控制开emmm,有点东西。

image.png

难道说0.3这个数字有问题?于是我试了一下其他的

image.png

为啥有这个问题嘞,据高程第四版本的注意事项来看,是因为使用了IEEE754数值的问题,并非es所独有。其他使用相同格式的语言也会有这个问题。

好家伙这不是整活了,万一客户买的东西还真带了0.1和0.2的咋办呢·····

ES6提供了一个新的方法叫Number.EPSILON 这可能是个好东西。据阮老师的解释(阮一峰老师的# ECMAScript 6 入门)。

image.png

`const x = 0.1;

const y = 0.2;

const z = 0.3;

if((x+y-z)<Number.EPSILON){

console.log('感谢帅哥观看')

}`