Anda tidak dapat menyelesaikannya, dan saya sarankan itu bukan masalah. Begitulah cara Oracle menyimpan NUMBER
nilai:dengan presisi paling sedikit yang dibutuhkan. Jika Anda memasukkan harga sebagai 4.00
itu akan disimpan sebagai 4
.
Perhatikan bahwa Java tidak akan default ke dua desimal saat menampilkan nilai. Anda perlu menentukan jumlah tempat desimal.
Dan, jika memungkinkan, saya akan menggunakan BigDecimal
bukannya float
untuk harga. float
jenis tidak tepat. Alternatifnya adalah dengan menggunakan salah satu tipe integer (int
atau long
) dan kelola sendiri tempat desimalnya.
Untuk memformat harga untuk ditampilkan dalam kode Java Anda, gunakan String.format("%.2f", price)
.
Untuk memformat harga dalam kueri Oracle, gunakan TO_CHAR
:
SELECT TO_CHAR(price, '999999990.00'), etc.
Pilih jumlah placeholder yang terbaik untuk Anda, dan perhatikan bahwa Oracle akan memberikan ruang ekstra di awal hasil. Ini dimaksudkan untuk menahan tanda minus jika angkanya negatif, tetapi untuk nol/positif itu adalah spasi. Untuk menghilangkan ruang, gunakan FM
pengubah di TO_CHAR
:
SELECT TO_CHAR(price, 'FM999999990.00'), etc.