私は、Java と SQL Server の精度の悪夢に悩まされてきましたが、もうわからないほどです。個人的には、この問題とその根底にある理由は理解していますが、地球の反対側にいるクライアントにそれを説明することは (少なくとも私にとっては) 不可能なことです。
状況はこうです。SQL Server には、Qty INT と Price FLOAT の 2 つの列があります。これらの値は 1250 と 10.8601 であるため、合計値を取得するには、その数量 * 価格と結果は 13575.124999999998 になります (Java と SQL Server の両方で)。そのとおりです。問題はこれです - クライアントはそれを見たくないのです。彼らはその番号を 13575.125 としてしか見ません。それだけです。ある場所では 2 桁の精度で表示され、別の場所では 4 桁の精度で表示されます。10 進数 4 桁で表示する場合、数字は正しい - 13575.125 ですが、2 桁で表示する場合、間違っていると信じています - 13575.12 - 代わりに 13575.13 にする必要があります!
ヘルプ。