1

JRE1.7 update 9 を使用しており、アプリケーションで金額の値を BigDecimal から文字列に変換しています。デフォルトの追加設定で、ロケール設定をフランス語 (ベルギー) のままにしました。この bigdecimal を文字列に変換する際に問題に直面しています。金額フィールドをクリックすると、100 倍になり、たとえば 100 の倍数で値が表示されます。値を 52.00 にすると、この値が変更され、5200 と表示されます。このロケールのみが問題を引き起こしています。同じシナリオが JRE 1.6 で確認されていますが、このロケールではこのような問題はありません。この JRE1.7 だけが、この特定のロケールで問題を抱えています。また、このシナリオでは例外が発生しません。

4

2 に答える 2

3

ベルギー/フランス語では、ロケール.ピリオド)はグループ区切り文字であり、,(コンマ)は小数点区切り文字です。

つまり、52.00は実際5200には、52,00は52です。

于 2012-11-26T12:27:26.030 に答える
1

こんにちは皆さん、この問題の修正を見つけました。この問題は、Locale.getDefault() の変更による Oracle からのものです。この変更により、他のロケールを選択した場合でも、デフォルト ロケールは en_US に設定されます。この問題の詳細については、Oracle バグデータベースのこのリンクを参照してください。この問題は JRE1.7 にのみ発生し、JRE1.6 には発生しません。

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7073906

ありがとうございました。

于 2012-11-27T13:05:20.453 に答える