Java中Math.abs()所遇问题及其优化方法

Math.abs(n):对int、long、float、double类型的数取绝对值

其中 int 类型的数取值范围是 -2^31——2^31-1(-2147483648 ~ 2147483647)

举例:

System.out.println(Math.abs(-2147483647));
//输出结果:2147483647

System.out.println(Math.abs(-2147483648));
//输出结果:-2147483648

 解决方法:

  方法一:将里面的数据强制转化成long类型

long la = Math.abs((long)a);
long lb = Math.abs((long)b);

  方法二:都变成负数就不会越界了

if (a > 0) a = -a;
if (b > 0) b = -b;

猜你喜欢

转载自blog.csdn.net/indeedes/article/details/120754897
今日推荐