math.abs(-0.0) returns 0.0 as it should, but (-0.0).abs returns -0.0. The reason is that math.abs directly calls java.lang.Math.abs but (-0.0).abs is implemented in Numeric.scala by checking if the value is < 0, which fails for -0.0.
One way to fix this is to use compare instead of lt:
scala> -0.0 compare 0 res3: Int = -1 scala> 0.0 compare 0 res4: Int = 0
There may well be other bugs involving -0.0.