Java 5.0からBigDecimal#toString()の挙動が変わっている

会社の人に教えてもらった.

指数が必要な場合、科学表記法で、この BigDecimal の文字列表現を返します。

JDK1.4と書いてる内容が違う.

この BigDecimal の String 表現を返します。Character.forDigit(int, int) による数字から文字へのマッピングが使用されます。先行するマイナス符号は符号を示すために使用され、小数点以下の桁数はスケールを示すために使用されます (この表現は String を引数とするコンストラクタと互換性がある)。

要するにスケールの設定によって,運が悪いとBigDecimalの文字列表現が指数表記になりますよってことらしい(テキトウ).


Java 5.0でJDK1.4のBigDecimal.toString()相当の結果を得たい場合は,BigDecimal.toPlainString()ってのを使うようだ.

指数フィールドなしで、この BigDecimal の文字列表現を返します。 ...(このメソッドの動作は、1.4 以前のリリースでの toString メソッドと同様)

みょーなところでチマチマ変わってんだねぇ.:-(