这个1e-6具体什么意思,一直对它懵懵懂懂的,老师也解释不清楚?????
3条回答 默认 最新
- threenewbee 2018-11-20 05:03关注
Math.abs(x)<1e-6其实相当于x == 0
1e-6(也就是0.000001)叫做epslon,用来抵消浮点运算中因为误差造成的相等无法判断的情况。它通常是一个非常小的数字(具体多小要看你的运算误差)
比如说因为精度误差,用十进制举例,我们要算1/3+1/3+1/3 == 1(从数学上说,肯定相等),但是因为精度问题,等号左边算出来是0.3333333+0.3333333+0.3333333 = 0.9999999,存在了误差,右边是1.0000000,那么如果直接用 == ,返回false,我们希望它被视作相等。那么就要两数相减取绝对值小于epslon的办法。
解决 9无用