この動作は、浮動小数点数で予想されます。 IEEE754がどのように機能するかを読むことができます
しかし、別の問題が起こっていると思います。数値が倍精度(64ビット)であると言いますが、結果に基づいて、float(32ビット)に変換されているように見えます
-42295.8451869851 -> 0xC0E4A6FB0BC59380 (64bit) - 0xC72537D8 (32bit)
-42295.84518699004 -> 0xC0E4A6FB0BC59627 (64bit)- 0xC72537D8 (32bit)
精度を正しく保ちたい場合は、DBとJavaの両方で正しく定義する必要があります。https://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html