0

数値を文字列入力として受け取る API があり、数値の Float 値を取得する必要があります。現在、Float.ParseFloat メソッドを使用して、String 番号の float 値を取得しています。

Float.ParseFloat のJava ドキュメントによると、入力が Float.MAX_VALUE より大きいことについては何も言及されていません。

私がこれを行うことを考えていた方法の 1 つは、入力文字列の長さが Float.MAX_VALUE の長さよりも大きいことを確認することでした。

Pls は、これを処理する方法を提案します。

4

4 に答える 4

1
  • より高い精度を使用できます。double または BigDecimal を試してください。公開されている任意精度ライブラリもあります。
  • 適切に解析できない場合 (たとえば、有効桁数が多すぎるか、指数が大きすぎる場合: 1.23456789012345e5000)、単精度浮動小数点で保持することもできません。
于 2012-07-12T08:08:57.747 に答える
0

数値が大きすぎる場合、結果は Float.POSITIVE_INFINITY に設定されます。これは、IEEE FP 演算の規則で要求され、10 秒のテストが示すとおりです。

于 2012-07-12T08:13:17.490 に答える
0

指数は最大指数値にクリップします。ソースの 1197 行を参照してください。

おそらく、アプリケーションの最大の有用な値を確認してください。

于 2012-07-12T08:12:01.037 に答える