Java中的Math.abs()

Math.abs(n):對int、long、float、double類型的數取絕對值java

其中 int 類型的數取值範圍是 -2^31——2^31-1(-2147483648 ~ 2147483647)eclipse

舉例:spa

1 System.out.println(Math.abs(-2147483647));
2 //輸出結果:2147483647
3 
4 System.out.println(Math.abs(-2147483648));
5 //輸出結果:-2147483648

爲何會獲得這樣的結果呢?-2147483648沒有超過 int 的取值範圍,可是取絕對值後獲得的仍是負數?翻譯

 

查看了Math.abs()的註釋,看到了一段解釋:code

Note that if the argument is equal to the value of Integer.MIN_VALUE, the most negative representable int value, the result is that same value, which is negative.blog

(百度翻譯:請注意,若是參數等於integer.min_value的值(最負的可表示int值),則結果是相同的值,這是負值。)ip

 

原來對於這個方法,若是是-2147483648不會進行處理,獲得的仍是負數get

相關文章
相關標籤/搜索