在前面我设置了这样的文本,priceFormat是S $%。2f。
textPrice.setText(String.format(priceFormat, item.getPrice()));
现在我想将它转换为双变量,我绝对认为我必须使用priceFormat,但我不知道如何。这个底线是错误的。
double Price=Double.parseDouble(textPrice.getText());
答案 0 :(得分:0)
你需要将textPrice.getText()转换为String,因为它的Double.parseDouble(String):
double price = Double.parseDouble(mStatus.getText().toString());
你还必须消除S $和尾随。:
double price = Double.parseDouble(mStatus.getText().toString().replaceAll("S\\$|\\.$", ""));
当然,你应该减少错误:
double price = 0d;
try {
price = Double.parseDouble(mStatus.getText().toString().replaceAll("S\\$|\\.$", ""));
}
catch (NumberFormatException e) {
// show an error message to the user
textPrice.setError("Please enter a valid number");
}
答案 1 :(得分:-1)
你需要在解析之前删除S$
,其中一种方法是:
String text = textPrice.getText();
String priceText = text.split("$")[1].trim(); //splitting numeric characters with the currency characters
double priceVal = Double.parseDouble(priceText); //parsing it to double