算術式を使用したビジネスロジックがいくつかあり、その結果は次のとおりです
(10.0 * 20.58)/1.0=205.7999..98
(6.0 * 37.9)/1.0=227.3999..98
(5.0 * 50.0)/1.0=250.0
(10.0 * 37.9)/1.0=379.0
しかし、期待される結果は
(10.0 * 20.58)/1.0=205.8
(6.0 * 37.9)/1.0=227.4
(5.0 * 50.0)/1.0=250.0
(10.0 * 37.9)/1.0=379.0
.999..98 の小数部を取得する理由がよくわかりません。そのため、equals 比較が失敗し、ビジネス ロジックが失敗します。私たちが使用しているいくつかのケースでは
amt = (double)Math.round(orderAmt*100000)/100000;
しかし、二重の算術式があるすべての場所で同じことを行うことはできません。
このような結果がランダムに得られる理由を知りたいのですが、すべての場所を丸めるのではなく、結果を小数点以下 5 桁に丸める可能性はありますか?