फ्लोटिंग पॉइंट नंबर के लिए यह व्यवहार अपेक्षित है। आप पढ़ सकते हैं कि IEEE 754 कैसे काम करता है https://en.wikipedia.org/wiki/IEEE_754ए> ।
लेकिन मुझे लगता है कि एक और मुद्दा हो रहा है। आप कहते हैं कि संख्या दोगुनी (64-बिट) है, लेकिन परिणाम के आधार पर ऐसा लगता है कि यह फ्लोट (32-बिट) में परिवर्तित हो जाता है
-42295.8451869851 -> 0xC0E4A6FB0BC59380 (64bit) - 0xC72537D8 (32bit)
-42295.84518699004 -> 0xC0E4A6FB0BC59627 (64bit)- 0xC72537D8 (32bit)
यदि आप सटीकता को सही रखना चाहते हैं तो आपको इसे डीबी और फिर जावा में https://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html