現在のロケールに従ってフォーマットされている可能性のある整数を正確に解析したいと思います。整数を正確に解析しなかった場合は、それを知りたいです。だから私は使用します:
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が元の文字列で表された整数値と正確に等しいかどうかをどのように知ることができますか?」