Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Hibernacja utraty precyzji w wynikach mapowania liczby (22,21) do BigDecimal

Jest to wynik inicjalizacji BigDecimal z double :

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

Tak więc, gdy BigDecimal zainicjowana w ten sposób jest zapisywana w bazie danych, tworzy niedokładną wartość, która jest później poprawnie ładowana.

Jeśli BigDecimal jest inicjowany przez ciąg znaków lub jeśli wartość jest ustawiona bezpośrednio w Javie, wszystko działa dobrze.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kiedy używać podpowiedzi w zapytaniu Oracle

  2. Hierarchiczne pytanie SQL

  3. Czy operacja wstawiania może spowodować, że kolejna operacja DDL będzie czekać?

  4. Różnica między dwiema wartościami Rok Miesiąc i Dzień w Oracle

  5. Oracle BI:Wybierz wszystkie rekordy z zeszłego tygodnia