Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

किसी संख्या (22,21) को BigDecimal में मैप करते समय परिणामों में सटीकता की हानि हाइबरनेट करें

यह BigDecimal . को इनिशियलाइज़ करने का नतीजा है double . से :

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

तो, जब BigDecimal इस तरह से प्रारंभ किया गया डेटाबेस में सहेजा जाता है, यह एक गलत मान उत्पन्न करता है, जिसे बाद में सही ढंग से लोड किया जाता है।

अगर BigDecimal स्ट्रिंग द्वारा प्रारंभ किया गया है या यदि मान सीधे जावा में सेट किया गया है तो सब कुछ ठीक काम करता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ओरेकल क्वेरी - ORA-01652:अस्थायी खंड का विस्तार करने में असमर्थ लेकिन केवल sql*plus . के कुछ संस्करणों में

  2. एसक्यूएल चैलेंज/पहेली:एक स्टैक ट्रेस दिया गया - समय पर प्रत्येक बिंदु पर शीर्ष तत्व कैसे खोजें?

  3. Oracle JDeveloper में जावा एप्लिकेशन बनाना, भाग 2

  4. एसक्यूएल स्क्रिप्ट से शेल स्क्रिप्ट पर वापसी मूल्य

  5. 1985-02-07T00:00:00.000Z (ISO8601) को Oracle में दिनांक मान में कैसे बदलें?