EditTextビュー等に入力された文字列を数値に変換する時に
String str = someEditTextView.getText().toString();
float v = Float.valueOf(str);
として値を取り出すとコンマが小数点だと認識されずに例外(NumberFormatException)が発生してしまいます。
小数点がピリオド(.)でもコンマ(,)でも正しく文字列を値に変換するには
NumberFormat nf = NumberFormat.getInstance(); // デフォルトのロケールを使う
Number n = nf.parse(str);
float v = n.floatValue();
等としましょう。これならロケールに合わせてピリオドやコンマを正しく小数点と認識してくれます。
また値を入力するためのEditTextビューに
<EditText
...
android:inputType="numberDecimal"
/>
と数字関係の文字のみ入力できるようにしている場合には
android:digits="0123456789.,"
等と入力できる文字を指定してコンマも入力できるようにしましょう。
0 件のコメント:
コメントを投稿