您的位置:首页 > 其它

Math.abs()不能做到的事情

2012-02-26 15:49 232 查看
Math.abs( T a) 是对数据进行求绝对值的,但是在下面的测试上就不能够完美的表现出他的功能。

对于Integer.MIN_VALUE和Long.MIN_VALUE来说,Math.abs()对他们不起作用。返回的还是原来的值。

public class absTest {

public static void main(String[] args) {

int min = Integer.MIN_VALUE;

System.out.println(min); // 输出-2147483648

min = Math.abs(min);

System.out.println(min); // 输出-2147483648

// 说明Math.abs(int MIN_VALUE) 不能将其转化为正整数,同理对于Long型也是一样的

// 在Math.abs()的文档中有特别的说明说是对于Long.MIN_VALUE、Integer.MIN_VALUE 的值(即能够表示的最小负 int、long 值),

// 那么结果与该值相同且为负。

//下面输出的结果为 min_value

if(min == Integer.MAX_VALUE)

System.out.println("max_value");

else if(min == Integer.MIN_VALUE)

System.out.println("min_value");

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: