Hi, in MATH-1070 we have discovered that calling Precision.round(x, y) behaves differently for float and double values when the value to be rounded is negative zero:
Precision.round(-0.0d, 0) = 0.0 Precision.round(-0.0f, 0) = -0.0 The reason being that in the double case, the value is converted to a BigDecimal, which loses the sign in this case, see http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#BigDecimal%28java.lang.String%29. I could not find anything related to the IEEE standard for rounding numbers for this case. Looking at octave and python, there the sign is kept and this would also be a reasonable behavior imho. Thus I would propose to add a special case for this to the Precision.round method. Thomas --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org