Takie zachowanie jest oczekiwane dla liczby zmiennoprzecinkowej. Możesz przeczytać, jak działa IEEE 754 https://en.wikipedia.org/wiki/IEEE_754 .
Ale myślę, że dzieje się inny problem. Mówisz, że liczba jest podwójna (64-bitowa), ale na podstawie wyniku wygląda na to, że zostanie przekonwertowana na zmiennoprzecinkową (32-bitową)
-42295.8451869851 -> 0xC0E4A6FB0BC59380 (64bit) - 0xC72537D8 (32bit)
-42295.84518699004 -> 0xC0E4A6FB0BC59627 (64bit)- 0xC72537D8 (32bit)
Jeśli chcesz, aby dokładność była poprawna, musisz ją poprawnie zdefiniować zarówno w DB, jak i w Javie, użyj https://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html