1) 「TABLE1」というテーブルを含む Sybase データベースがあります。「X」(ビジネス用語でお金を表す) と表示されているフィールドの 1 つは、そのテーブルで「float」型を持っています。残念ながら、同じことをすると多くのアプリケーションが影響を受けるため、この列のタイプを変更することはできません。
2) JDBC で jconn2.jar を使用しています。getDouble() を使用して 'X' を取得します (どこかで、float,double SQL 型が double 'Java データ型' として最適にマップされることを読みました)。
3) データベースの「X」に格納されている値は「212400000」です。getDouble(int col) を実行すると、「212399999.99999997」が得られます (科学的な形式で)。精度を落としています。基数 2 で正確に表すことができない特定の数値があるという事実を認識しているため、double を使用すると誤った出力が表示されます。
4) getBigDecimal を試しましたが、無駄でした。ハマった。誰かが私を同じように案内してくれますか?
編集:-私が尋ねる必要がある1つの質問は、必要な精度に基づいて getDouble() を使用して値を取得できる方法があるということです 12,17 など? getDouble() に関連付けられているデフォルトの精度は?