java.lang.NumberFormatException의 : 입력 문자열의 경우 : "099"은안드로이드 통화 - java.lang.NumberFormatException의 : 입력 문자열 : "099"
이것은 내가지고있어 오류가있는 경우 I this code을 다른 SO 응답에서 실행하여 EditText를 통화로 포맷합니다 (쉼표 뒤의 두 숫자).
나는 여기에 내 코드를 재 게시됩니다
price.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
String current = Double.toString(sub.getPrice());
@Override
public void afterTextChanged(Editable s) {
if(!s.toString().equals("")){
price.removeTextChangedListener(this);
String replaceable = String.format("[%s,.]", NumberFormat.getCurrencyInstance(locale).getCurrency().getSymbol());
String cleanString = s.toString().replaceAll(replaceable, "");
double parsed = Double.parseDouble(cleanString);
String formatted = NumberFormat.getCurrencyInstance().format((parsed/100));
current = formatted;
price.setText(formatted);
price.setSelection(formatted.length());
price.addTextChangedListener(this);
}
}
});
price
EditText
입니다.
는 지금까지 시도하는 것 :
내가 USD ($)로 통화를 강제로 시도 대신 locale
에 기초하고 오류가 나는 유로를 사용하는 경우 동안 (기반, 표시되지 않습니다 로케일) 오류가 발생합니다.
또한 통화를 USD에서 EUR로 전환하면 기호가 $9,00
에서 9,00 €
으로 바뀌는 것으로 나타났습니다. 나는 그 숫자와 € 사이의 공간이 NumberFormatException
을 일으킨다 고 생각하지만, 그것을 고치는 방법에 대한 단서가 없다.
유효한 숫자 문자열이되도록하려면 문자열을 자릅니다. –
정말 투표 결과가 내려진 이유가 없습니다. – Daniele
[NumberFormatException이란 무엇이며 어떻게 고칠 수 있습니까?] (https://stackoverflow.com/questions/39849984/what-is- a-numberformate-in-it-can-i-fix-it) – xenteros