Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Nieprawidłowe podwójne wartości zwrócone z mysql do java

Takie zachowanie jest oczekiwane dla liczby zmiennoprzecinkowej. Możesz przeczytać, jak działa IEEE 754 https://en.wikipedia.org/wiki/IEEE_754 .

Ale myślę, że dzieje się inny problem. Mówisz, że liczba jest podwójna (64-bitowa), ale na podstawie wyniku wygląda na to, że zostanie przekonwertowana na zmiennoprzecinkową (32-bitową)

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

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

Jeśli chcesz, aby dokładność była poprawna, musisz ją poprawnie zdefiniować zarówno w DB, jak i w Javie, użyj 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. Wyjaśnienie funkcji MySQL IF()

  2. Odmowa dostępu dla użytkownika „root”@„localhost”

  3. Java/Mysql Jak wstrzyknąć cały plik SQL do serwera mysql?

  4. Jak podejść do dylematu:eksport zamówień ze starego systemu magento import do nowego magento, nakładające się identyfikatory

  5. PHP, odśwież stronę we wstawce