Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Hibernasi hilangnya presisi dalam hasil saat memetakan angka (22,21) ke BigDecimal

Ini adalah hasil dari inisialisasi BigDecimal dari double :

System.out.println(String.format("%21.20f", new BigDecimal(0.493)); 
// Prints 0,49299999999999999378  

Jadi, ketika BigDecimal diinisialisasi dengan cara ini disimpan dalam database, menghasilkan nilai yang tidak akurat, yang kemudian dimuat dengan benar.

Jika BigDecimal diinisialisasi oleh string atau jika nilainya disetel langsung di Java semuanya berfungsi dengan baik.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle 12cR2 sekarang dalam versi Beta

  2. Tablespace di Oracle

  3. Oracle - Dalam pertanyaan CLAUSE saat menggunakan dengan banyak nilai, menjadikannya dinamis

  4. Tidak ada pemetaan Dialek untuk tipe JDBC:-9

  5. Membandingkan nilai yang dipisahkan koma dari dua kolom dari dua tabel yang berbeda