sql >> Databáze >  >> RDS >> Mysql

Nesprávné dvojité hodnoty vrácené z mysql do java

Toto chování se očekává pro číslo s plovoucí desetinnou čárkou. Můžete si přečíst, jak funguje IEEE 754 https://en.wikipedia.org/wiki/IEEE_754 .

Ale myslím, že se děje jiný problém. Říkáte, že číslo je dvojité (64bitové), ale podle výsledku to vypadá, že je převedeno na float (32bitové)

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

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

Pokud chcete zachovat správnou přesnost, musíte ji správně definovat jak v DB, tak v Javě pomocí https://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html



  1. oracle - dotazování hodnot NULL v unpivot dotazu

  2. Parametry C# MySQL:? nebo @

  3. Proč SQL Server přidává 4bajtové celé číslo do nejedinečných seskupených indexů

  4. Migrace z AnswerHub na WordPress:Příběh 10 technologií