Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Hibernate mất độ chính xác trong kết quả khi ánh xạ một số (22,21) sang BigDecimal

Đó là kết quả của việc khởi tạo BigDecimal từ double :

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

Vì vậy, khi BigDecimal khởi tạo theo cách này sẽ được lưu trong cơ sở dữ liệu, nó tạo ra một giá trị không chính xác, giá trị này sẽ được tải chính xác sau này.

Nếu BigDecimal được khởi tạo bằng chuỗi hoặc nếu giá trị được đặt trực tiếp trong Java thì mọi thứ đều hoạt động tốt.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách kết nối oracle Cloud Instance bằng Oracle Cloud Shell?

  2. Làm cách nào để tắt kích hoạt trong Oracle SQL Developer?

  3. Điền một mảng liên kết bên trong một bảng lồng nhau

  4. Giải thích về toán tử INTERSECT của Oracle

  5. Truyền tham số vào tệp Oracle SQL từ tệp Batch