Integer値範囲とNumberFormatExceptionの解決
1699 ワード
プロジェクトサービス側には現地のニュースを検索するインタフェースがあり、GEOファイルからcodeを取得し、バックグラウンドで検索します.
午后のテストの时に日本を调べます:392000000,000,结果はjava.lang.Number FormatException、数値フォーマット異常、
デバッグ後、コードに整数かどうかの判断があり、StringをIntegerに変換し、「392000000」が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タイプについては、−922337203685475808〜922337203685475807(−263〜263−1)の範囲であり、−922337203685475808および922337203685475807を含む.charタイプの場合、0および65535を含む値範囲は0から65535です.
テスト:
出力:
午后のテストの时に日本を调べます:392000000,000,结果はjava.lang.Number FormatException、数値フォーマット異常、
デバッグ後、コードに整数かどうかの判断があり、StringをIntegerに変換し、「392000000」が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タイプについては、−922337203685475808〜922337203685475807(−263〜263−1)の範囲であり、−922337203685475808および922337203685475807を含む.charタイプの場合、0および65535を含む値範囲は0から65535です.
テスト:
public class Integertest {
public static void main(String[] args) {
System.out.println(" :" + Integer.MAX_VALUE);
System.out.println(" :" + Integer.MIN_VALUE);
}
}
出力:
:2147483647
:-2147483648