天天看點

Integer取值範圍和NumberFormatException的解決

  項目服務端有個查詢當地新聞的接口,從geo檔案中取得code,背景查詢。

  下午測試的時候查詢日本:3920000000,結果報java.lang.numberformatexception,數字格式化異常,

調試後發現代碼中有個是否整數的判斷,會把string轉換成integer,"3920000000"超出了int的值域後報異常。

 jdk 7的虛拟機中,int取值範圍為"-2^31~(2^31-1)"。

 對于 byte 類型,取值範圍是從-128 至 127(-27至 27-1) ,包括-128 和 127。 

 對于 short 類型,取值範圍是從− 32768 至 32767(-215至 215-1) ,包括− 32768 和

 32767。 

 對于 int 類型,取值範圍是從− 2147483648 至 2147483647(-231至 231-1) ,包括−

 2147483648 和 2147483647。 

 對于 long 類型,取值範圍是從− 9223372036854775808 至 9223372036854775807

 (-263至 263-1) ,包括− 9223372036854775808 和 9223372036854775807。 

 對于 char 類型,取值範圍是從 0 至 65535,包括 0 和 65535。

測試:

輸出: