コンテンツへスキップ
ものがたり
戻る

bug in JDK? java.text.DecimalFormat

Javaは普段あんましいじらなくなってしまったので疑わしいのだけど。

System.out.println (  

  new DecimalFormat (".00").format(0.12));

format patternのBNFを見た感じ、エラーにならなければならないはずだが、手元のJDK 1.5では0.12と出力される。DecimalFormatで’.‘が出てきて良いのはfractionの前だけのはずだ。そしてfractionが出てくる前には、省略できないIntegerがあるわけで。’.’は(ドキュメント上にきっちりした定義は無いけど明らかに)special charactersだから、Prefixとしても受け容れられないわけで。

何でそんなの見ているかというと、XSLT 1.0がJDKのDecimalFormatを使っているから。

追記: bugparadeを眺めていたら似たようなのが見つかった。JDKもこの辺はけっこうバグがあるっぽい。


この記事を共有:

前の記事
2005-06-07
次の記事
xmldiff