Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Nilai ganda yang salah dikembalikan dari mysql ke java

Perilaku ini diharapkan untuk angka floating point. Anda dapat membaca cara kerja IEEE 754 https://en.wikipedia.org/wiki/IEEE_754 .

Tapi saya pikir ada masalah lain yang terjadi. Anda mengatakan bahwa angkanya ganda (64-bit), tetapi berdasarkan hasil terlihat bahwa angka tersebut dikonversi menjadi float(32-bit)

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

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

Jika Anda ingin menjaga presisi yang benar maka Anda perlu mendefinisikannya dengan benar baik di DB dan kemudian di Java gunakan 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. Bagaimana cara mengonversi kolom ke ASCII dengan cepat tanpa menyimpan untuk memeriksa kecocokan dengan string ASCII eksternal?

  2. Buat tabel database ActiveRecord tanpa kolom :id?

  3. Akses MySQL jarak jauh

  4. Perlu bergabung dengan 2 tabel tetapi kecuali beberapa baris di tabel lain di MySQL

  5. Cara memanggil prosedur tersimpan di Entity Framework Core dengan parameter input dan output menggunakan mysql