3

Java と C に大きな float と double を (10 億の範囲で) 与えると、それらは科学表記法に変換され、その過程で精度が失われます。どうすればこの動作を止めることができますか?

4

2 に答える 2

13

Java の場合は、BigDecimalを確認してください

于 2008-10-11T04:18:19.553 に答える
8

科学表記法への変換は、純粋に表示方法の効果です。表示の変更は、出力方法の問題です (書式指定子)

通常、float の精度は約 6 桁であるため、10 億単位の数値を保持するには不適切です。double には約 15 桁の精度があるため、完全な精度で数兆をはるかに超える数値を保持できるはずです。

C で double を表示するには:

printf("%10f", dbl);
于 2008-10-11T04:19:27.913 に答える