String.formatは言語設定で結果が異なる?

Pokecom GO2のバグレポートをドイツの方からいただきました。

計算結果で小数点がドットではなくカンマになるから、その計算結果を使った次の計算ができない。。。という内容。

最初、何を言っているのかよくわかりませんでしたが、ドイツ(フランスなども)では小数点にカンマを使うようなのです。これ知りませんでした。(T_T)

それから、JavaのString.formatは言語設定をみて出力を自動で切り替えるようです。

なので、String.format("%g", x)とした場合、"0.1"のように出力されることを期待していましたが、ドイツ語環境だと"0,1"となります。

ということで、'.'(ドット)を期待して文字列処理していたので、ドイツ語環境では計算結果が正しく表示で来ておらず、またその結果、計算結果を使って次の計算をする処理もちゃんとできていませんでした。。。

少し調べたら、String.format(Locale.US, "%g", x)というロケールを固定するやり方がありましたので、これを使って表示フォーマットをUS固定にしました。

1.00.03で修正しています。