sql >> Databáze >  >> RDS >> Oracle

Hibernační ztráta přesnosti výsledků při mapování čísla (22,21) na BigDecimal

Je to výsledek inicializace BigDecimal z double :

System.out.println(String.format("%21.20f", new BigDecimal(0.493)); 
// Prints 0,49299999999999999378  

Takže, když BigDecimal takto inicializovaný se uloží do databáze, vytvoří nepřesnou hodnotu, která se později správně načte.

Pokud BigDecimal je inicializován řetězcem nebo pokud je hodnota nastavena přímo v Javě, vše funguje dobře.



  1. Zrychlí přidání 'LIMIT 1' do MySQL dotazů, když víte, že bude pouze 1 výsledek?

  2. Vytvoření vlastní funkce MySQL?

  3. Jak vložit obrázky z databáze?

  4. Jak vygenerovat pole automatického přírůstku ve výběrovém dotazu