概述
Math.abs(x)<1e-6其实相当于x == 0
1e-6(也就是0.000001)叫做epslon,用来抵消浮点运算中因为误差造成的相等无法判断的情况。它通常是一个非常小的数字(具体多小要看你的运算误差)
在一开始学习c语言的时候,我们就知道计算机在存储数据的时候是使用二进制,而二进制是无法准确存储double数据的。至于是为什么,不要问我,因为我也是新手,而java语言的底层也是c、c++,所以也是同理。
比如说因为精度误差,用十进制举例,我们要算1/3+1/3+1/3 == 1(从数学上说,肯定相等),但是因为精度问题,等号左边算出来是0.3333333+0.3333333+0.3333333 = 0.9999999,存在了误差,右边是1.0000000,那么如果直接用 == ,返回false,我们希望它被视作相等。那么就要两数相减取绝对值小于epslon的办法。
最后
以上就是缓慢帽子为你收集整理的java里Math.abs(x)1e-6是什么意思?的全部内容,希望文章能够帮你解决java里Math.abs(x)1e-6是什么意思?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复