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もこの辺はけっこうバグがあるっぽい。