JAVA+SQL で正確な計算を行うためのオプションについて、簡潔な概要を確立しようとしています。これまでのところ、次のオプションが見つかりました。
- 欠点を受け入れてダブルスを使用してください。
- BigDecimal を使用する
- それらを複雑な式で使用することは私にとって問題です
- String.format/Decimal.format を使用して double を丸めます
- BigDecimal の精度を得るには、式の各変数を丸める必要がありますか?
- これはどのように微調整できますか?
- SQL で計算フィールド オプションを使用します。
- 欠点は、さまざまなテーブルからデータを取得し、他の計算フィールドのフィールドを計算するために動的 SQL が必要であり、面倒になることです。
他のオプションはありますか?
問題文: 非常に大きな数字 (10 億) と非常に小さな数字 (0.0000004321) を使用し、互いに非常に類似した値を除算することを含む正確な財務計算が必要なので、BigDecimal の精度が必要です。
一方で、double が関数内で持っている使いやすさを維持したいので (10 進数の SQL データから配列を操作します)、次のような計算を行います: (a[i] - b[i])/b[i] など。など、他の計算でさらに使用されます。そして、ユーザーが必要に応じて独自の式を設計できるようにしたいと思います(一般的な数学ステートメントを使用して)
私はString.formatに「フォーマット」ソリューションを使用したいと思っていますが、これによりコードが読みにくくなります(各変数にString.format()を使用しています...)。
対処方法をご提案いただき、誠にありがとうございました。