Mysql
 sql >> база данни >  >> RDS >> Mysql

Неправилни двойни стойности, върнати от mysql към java

Това поведение се очаква за числото с плаваща запетая. Можете да прочетете как работи IEEE 754 https://en.wikipedia.org/wiki/IEEE_754 .

Но мисля, че се случва друг проблем. Казвате, че числото е двойно (64-битово), но въз основа на резултата изглежда, че се преобразува в float (32-битово)

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

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

Ако искате да запазите точността правилна, тогава трябва да я дефинирате правилно както в DB, ​​така и в Java, използвайте 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. Как да конвертирам база данни на Oracle в MySQL?

  2. Doctrine Backuptables

  3. MySQL и LIKE сравнение с %

  4. MySQL:Как да извличам данни с ляво присъединяване, ако колоната съдържа множество идентификатори?

  5. PHP Проверете дали низът съдържа буква