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

Các giá trị kép được trả về từ mysql sang java không chính xác

Hành vi này được mong đợi đối với số dấu phẩy động. Bạn có thể đọc cách hoạt động của IEEE 754 https://en.wikipedia.org/wiki/IEEE_754 .

Nhưng tôi nghĩ có một vấn đề khác đang xảy ra. Bạn nói rằng số là gấp đôi (64-bit), nhưng dựa trên kết quả, có vẻ như nó được chuyển đổi thành float (32-bit)

-42295.8451869851 -> 0xC0E4A6FB0BC59380 (64bit) - 0xC72537D8 (32bit)

-42295.84518699004 -> 0xC0E4A6FB0BC59627 (64bit)- 0xC72537D8 (32bit)

Nếu bạn muốn giữ độ chính xác chính xác thì bạn cần phải xác định nó một cách chính xác cả trong DB và sau đó trong Java, hãy sử dụng https://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để chuyển đổi ứng dụng web php thành ứng dụng máy tính để bàn và giữ lại cơ sở dữ liệu

  2. Xử lý các giao dịch trong MySQL

  3. Kết nối MySQL Azure với Java

  4. Ứng dụng web dựa trên MySQL:Cách dễ nhất để người dùng chọn đơn hàng hoặc mặt hàng?

  5. Có công cụ nào để tạo cơ sở dữ liệu DDL đầy đủ cho SQL Server không? Còn Postgres và MySQL thì sao?