現在のロケールに従ってフォーマットされている可能性のある整数を正確に解析したいと思います。整数を正確に解析しなかった場合は、それを知りたいです。だから私は使用します:
String string = "1111122222333334444455555";
Locale locale = Locale.getDefault();
NumberFormat numberFormat = NumberFormat.getIntegerInstance(locale);
numberFormat.setParseIntegerOnly();
Number number = numberFormat.parse(string);
明らかに、缶が処理できる"1111122222333334444455555"
よりも大きい大きな数を表します。Long
だからNumberFormat
私に... Double
??
特に整数固有の数値フォーマッターを要求したので、私はでBigInteger
はなくを受け取ることを期待していたと思います。Double
しかし、それを気にしないでください。より大きな問題は、私が返すdouble値が1.1111222223333344E24
!これは等しくありません1111122222333334444455555
!!
入力文字列に格納されている値と等しくないNumberFormat
解析値が表示された場合、それを検出するにはどうすればよいですか?
別の言い方をすれば、「Double
取得した値NumberFormat
が元の文字列で表された整数値と正確に等しいかどうかをどのように知ることができますか?」