あなたはそれを解決することはできません、そして私はそれが問題ではないことを提案します。これが、OracleがNUMBER
を格納する方法です。 値:必要最小限の精度で。価格を4.00
として入力した場合 4
として保存されます 。
値を表示するときも、Javaはデフォルトで小数点以下2桁に設定されないことに注意してください。小数点以下の桁数を指定する必要があります。
そして、可能であれば、BigDecimal
を使用します float
の代わりに 価格のために。 float
タイプは正確ではありません。別の方法は、整数型の1つ(int
)を使用することです。 またはlong
)そして小数点以下の桁数を自分で管理します。
Javaコードで表示する価格をフォーマットするには、String.format("%.2f", price)
を使用します。 。
Oracleクエリで価格をフォーマットするには、TO_CHAR
:
SELECT TO_CHAR(price, '999999990.00'), etc.
最適なプレースホルダーの数を選択し、Oracleが結果の先頭に余分なスペースを配置することに注意してください。数値が負の場合はマイナス記号を保持することを意味しますが、ゼロ/正の場合はスペースです。スペースを取り除くには、FM
を使用します TO_CHAR
の修飾子 :
SELECT TO_CHAR(price, 'FM999999990.00'), etc.