`DecimalFormat.format()` throws an `IllegalArgumentException` if it cannot format a number.  I think it's a fairly safe expectation that any number which it can successfully format it can also parse (this is true for the unusual cases like `NaN`, `Infinity`, and `-Infinity`).

But I've tidied up the code in question.  It's now part of `Utils.roundNumber()` and includes a comment about the assumption.
76e874f