sql >> Base de Datos >  >> RDS >> Mysql

Valores dobles incorrectos devueltos de mysql a java

Se espera este comportamiento para el número de coma flotante. Puede leer cómo funciona el IEEE 754 https://en.wikipedia.org/wiki/IEEE_754 .

Pero creo que hay otro problema sucediendo. Usted dice que el número es doble (64 bits), pero según el resultado, parece que se convierte en flotante (32 bits)

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

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

Si desea mantener la precisión correcta, debe definirla correctamente tanto en la base de datos como en Java, use https://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html