sql >> Databasteknik >  >> RDS >> Mysql

Felaktiga dubbla värden returnerade från mysql till java

Detta beteende förväntas för flyttalstalet. Du kan läsa hur IEEE 754 fungerar https://en.wikipedia.org/wiki/IEEE_754 .

Men jag tror att det finns ett annat problem. Du säger att talet är dubbelt (64-bitars), men baserat på resultatet ser det ut som att det konverteras till float(32-bitars)

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

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

Om du vill behålla precisionen korrekt måste du definiera den korrekt både i DB och sedan i Java använd https://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html



  1. Välj n rader per grupp i mysql

  2. Få antalet objekt och deras värden i en kolumn

  3. Uppdatera MySQL-tabellen från en lokal fil

  4. Hur tar man ett slumpmässigt objekt från en databas i Django/postgreSQL?