Over the summer when working on meat processing calculation engine - lots of floating point arithmetic - taking conversion percentages and such.

Java's willingness to distinguish between -0.0 and 0.0 and its happy silent conversions to NaN when doing something foolish like dividing by zero made the thing fucking hard to debug.

Java is a hack job.

I remain amazed that Smalltalk (alone? Don't know) has had arbitrary precision math since the beginning - including exact representations like fractions and such. While nearly every language produced since then has had only crude approximations built in.