Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
私は奇妙な状況を実行しています。Double parseDouble を使用して数を数えています。状況によっては、たとえば 109.1 の代わりに余分な 0 を取得しています ... 109.10000001 を取得しています。
json から文字列を追加しようとしています。
これが私が実行しているコード行です。
points = points + Double.parseDouble(x.points);
おそらく Double.parseDouble とは無関係ですが、浮動小数点の精度の問題です。float と double は、仮数と指数としてバイナリでエンコードされます。小数点以下の部分は、10 進数で簡単に表現できるものを 2 進数でうまく表現できるとは限らないため、特に問題となります。 ...)。表示のために固定桁数に丸めるか、代わりに java.math.BigDecimal を使用することをお勧めします。