发布网友 发布时间:2022-04-23 06:05
共2个回答
热心网友 时间:2023-10-23 12:59
1e-6表示1乘以10的负6次方。
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的办法。
Math.abs()返回参数的绝对值。参数可以是int,float,long,double,short,byte类型。
语法
各个类型的方法格式类似如下:
double abs(double d)
float abs(float f)
int abs(int i)
long abs(long lng)
参数
任何原生数据类型。
返回值
返回参数的绝对值。
实例
public class Test{
public static void main(String args[]){
Integer a=-8;
double d=-100;
float f=-90;
System.out.println(Math.abs(a));
System.out.println(Math.abs(d));
System.out.println(Math.abs(f));
}
}
编译以上程序,输出结果为:
8
100.0
90.0
热心网友 时间:2023-10-23 13:00
看用在哪里。