sql >> Database >  >> RDS >> Oracle

Slaapverlies van precisie in resultaten bij het toewijzen van een getal (22,21) aan BigDecimal

Het is het resultaat van het initialiseren van BigDecimal van double :

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

Dus, wanneer BigDecimal op deze manier geïnitialiseerd wordt opgeslagen in de database, produceert het een onnauwkeurige waarde, die later correct wordt geladen.

Als BigDecimal wordt geïnitialiseerd door een string of als de waarde rechtstreeks in Java wordt ingesteld, werkt alles goed.



  1. Wat is de maximale lengte van gegevens die ik in een BLOB-kolom in MySQL kan plaatsen?

  2. Hoe variabele declareren en gebruiken in hetzelfde Oracle SQL-script?

  3. Cyrillisch, AJAX en database

  4. SQL:Verplaats kolomgegevens naar een andere tabel in dezelfde relatie