double s = 5.3;double s1 = 4.2;System.out.println(s-s1);输出1.0999999999999996
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
Java の基本データ型の float 型と double 型の本質は浮動小数点数です。この場合、浮動小数点数を計算すると、計算結果は正確な値になりません。
したがって、Java はクラス BigDecimal を提供します。正確なデータ操作 (金額など) を実行する必要がある場合は、このクラスを使用して国を救うことができます...
BigDecimal
浮動小数点数の基本的な実装と原則については、计算机原理 などのコースでよく説明されています。関連する情報は自分で見つけることができます...
计算机原理
Java で BigDecimal を使用して浮動小数点数を正確に計算する
ご招待いただきありがとうございます!精度が失われる理由は説明できませんが、解決方法はわかっています。計算前に double などの型を String に変換し、それを java.math.BigDecimal に入れて計算することをお勧めします。 math.BigDecimal には、add() や pide() などの独自の操作メソッドが付属しています。 。計算後に BigDecimal オブジェクトが返され、doubleValue()、intValue()、その他のメソッドを使用して基本データ型に変換されます。
ご招待ありがとうございます。この質問については、この記事を参照してください https://zm8.sm-tc.cn/?src=http%3A%2F%2Fz...
コンピューターの演算は二進法だからです。
10 進数の 0.1 を 2 進数に変換すると、無限に繰り返される 10 進数になるため、切り捨てる必要があります。
10 進数の通貨の加算と減算では、切り捨てエラーを避けるために BigDecimal 型 (一部の言語では Decimal と呼ばれます) を使用できます。
MATLAB と同様に、数値クラスを自分で定義することもできます。
エラーとエラーは別のものです。ほとんどの場合、最後の違いは問題ではありません。
例: 倍精度浮動小数点数を使用して地球の円周を計算すると、切り捨て誤差は 0.000001 mm 程度になります。
Java の基本データ型の float 型と double 型の本質は浮動小数点数です。この場合、浮動小数点数を計算すると、計算結果は正確な値になりません。
したがって、Java はクラス
。BigDecimal
を提供します。正確なデータ操作 (金額など) を実行する必要がある場合は、このクラスを使用して国を救うことができます...浮動小数点数の基本的な実装と原則については、
计算机原理
などのコースでよく説明されています。関連する情報は自分で見つけることができます...Java で BigDecimal を使用して浮動小数点数を正確に計算する
ご招待いただきありがとうございます!精度が失われる理由は説明できませんが、解決方法はわかっています。計算前に double などの型を String に変換し、それを java.math.BigDecimal に入れて計算することをお勧めします。 math.BigDecimal には、add() や pide() などの独自の操作メソッドが付属しています。 。計算後に BigDecimal オブジェクトが返され、doubleValue()、intValue()、その他のメソッドを使用して基本データ型に変換されます。
ご招待ありがとうございます。この質問については、この記事を参照してください https://zm8.sm-tc.cn/?src=http%3A%2F%2Fz...
コンピューターの演算は二進法だからです。
10 進数の 0.1 を 2 進数に変換すると、無限に繰り返される 10 進数になるため、切り捨てる必要があります。
10 進数の通貨の加算と減算では、切り捨てエラーを避けるために BigDecimal 型 (一部の言語では Decimal と呼ばれます) を使用できます。
MATLAB と同様に、数値クラスを自分で定義することもできます。
エラーとエラーは別のものです。ほとんどの場合、最後の違いは問題ではありません。
例: 倍精度浮動小数点数を使用して地球の円周を計算すると、切り捨て誤差は 0.000001 mm 程度になります。