sql >> Database >  >> RDS >> Mysql

Onjuiste dubbele waarden geretourneerd van mysql naar java

Dit gedrag wordt verwacht voor het getal met drijvende komma. U kunt lezen hoe de IEEE 754 werkt https://en.wikipedia.org/wiki/IEEE_754 .

Maar ik denk dat er een ander probleem speelt. U zegt dat het getal dubbel is (64-bits), maar op basis van het resultaat lijkt het erop dat het wordt geconverteerd naar float (32-bits)

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

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

Als u de precisie correct wilt houden, moet u deze correct definiëren, zowel in DB als in Java, gebruik https://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html



  1. MySQL naar PostgreSQL:hoe wijzig ik deze SQL-query?

  2. Converteren van mysql naar mysqli (mysql_fetch_array)

  3. complexe query kost te veel tijd om over te zetten

  4. Het verschil tussen een JDBC-verklaring en een voorbereide verklaring