Perilaku ini diharapkan untuk angka floating point. Anda dapat membaca cara kerja IEEE 754 https://en.wikipedia.org/wiki/IEEE_754 .
Tapi saya pikir ada masalah lain yang terjadi. Anda mengatakan bahwa angkanya ganda (64-bit), tetapi berdasarkan hasil terlihat bahwa angka tersebut dikonversi menjadi float(32-bit)
-42295.8451869851 -> 0xC0E4A6FB0BC59380 (64bit) - 0xC72537D8 (32bit)
-42295.84518699004 -> 0xC0E4A6FB0BC59627 (64bit)- 0xC72537D8 (32bit)
Jika Anda ingin menjaga presisi yang benar maka Anda perlu mendefinisikannya dengan benar baik di DB dan kemudian di Java gunakan https://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html