Math.abs(x)的一个记录

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_20172379/article/details/88840836

abs
public static int abs(int a)
返回 int 值的绝对值。如果参数为非负数,则返回该参数。如果参数为负数,则返回该参数的相反数。
注意,如果参数等于 Integer.MIN_VALUE 的值(即能够表示的最小负 int 值),那么结果与该值相同且为负。

如下代码:

int a=Integer.MIN_VALUE;
System.out.println(a);//-2147483648
int num=Math.abs(a);
System.out.println(num);//-2147483648

因为最大值为2147483647,而绝对值为2147483648已经溢出,+1后变为最小值

参数:
a - 要确定绝对值的参数。
返回:
参数的绝对值。
另请参见:
Integer.MIN_VALUE
abs
public static long abs(long a)
返回 long 值的绝对值。如果参数为非负数,则返回该参数。如果参数为负数,则返回该参数的相反数。
注意,如果参数等于 Long.MIN_VALUE 的值(即能够表示的最小负 long 值),则结果与该值相同且为负。

参数:
a - 要确定绝对值的参数。
返回:
参数的绝对值。
另请参见:
Long.MIN_VALUE
abs
public static float abs(float a)
返回 float 值的绝对值。如果参数为非负数,则返回该参数。如果参数为负数,则返回该参数的相反数。特殊情况如下:
如果参数为正 0 或负 0,那么结果为正 0。
如果参数为无穷大,那么结果为正无穷大。
如果参数为 NaN,那么结果为 NaN。
换句话说,结果等于以下表达式的值:
Float.intBitsToFloat(0x7fffffff & Float.floatToIntBits(a))
参数:
a - 要确定绝对值的参数。
返回:
参数的绝对值。
abs
public static double abs(double a)
返回 double 值的绝对值。如果参数为非负数,则返回该参数。如果参数为负数,则返回该参数的相反数。特殊情况如下:
如果参数为正 0 或负 0,那么结果为正 0。
如果参数为无穷大,那么结果为正无穷大。
如果参数为 NaN,那么结果为 NaN。
换句话说,结果等于以下表达式的值:
Double.longBitsToDouble((Double.doubleToLongBits(a)<<1)>>>1)

参数:
a - 要确定绝对值的参数。
返回:
参数的绝对值。

猜你喜欢

转载自blog.csdn.net/qq_20172379/article/details/88840836