在我的應用程序中,我編輯了文本框,其中用戶輸入應用程序用來運行計算的十進制值。區域獨立字符串加倍
其他地區的某些用戶在輸入數字時會報告問題,例如輸入值和出現的不同值。我試圖通過獲得來自EDITTEXT值用這種方法來解決這個問題:
public double stringToDouble(String s){
if (nf == null){
nf = NumberFormat.getInstance(Locale.US);
}
try {
return nf.parse(s).doubleValue();
} catch (ParseException e) {
e.printStackTrace();
return 0.0;
}
}
和
val = stringToDouble(et.getText().toString());
但顯然仍是不工作的一些人。在斯洛文尼亞
一個用戶報告說,它工作正常,如果
- 設置;語言&鍵盤:
- 選擇語言:設置爲英語(斯洛文尼亞)
- 觸摸輸入:僅設置爲英語和任何語言(我的情況 斯洛文尼亞)
- 雙語預測:OFF
- 文本預測:OFF
獲取double值的正確方法是什麼? 感謝
是因爲有些國家使用逗號而不是點數來表示小數? –
我認爲這與它有關。但是,當我使用上面的雙字符串方法與「2,2」時,它返回一個值爲2.2的double,所以我認爲它工作。 – Matt
看看這是否有幫助http://stackoverflow.com/questions/4323599/best-way-to-parsedouble-with-comma-as-decimal-separator –