新的十进制格式后无效的浮点数

时间:2016-05-03 18:36:28

标签: java android floating-point decimal

用户希望从EditText" set_temp"升高温度。 Currtemp是全局字符串表示当前温度

float temp = Float.parseFloat(set_temp.getText().toString());
temp-=0.1;
currTemp=new DecimalFormat("#0.0").format(temp);
set_temp.setText(currTemp);

之后我在logcat中出错了

FATAL EXCEPTION: main
Process: ru.unn.caminlab, PID: 7835
java.lang.NumberFormatException: Invalid float: "49,9"

//但为什么?

2 个答案:

答案 0 :(得分:2)

看起来您正在解析包含无效小数格式的文本字段。

 float temp = Float.parseFloat(set_temp.getText().toString());

set_temp字段包含"49,9"时应为"49.9"

我认为他们可以输入该字段。您需要将其限制为仅限数字字段。不是纯文本。 (摆脱,输入)

将其添加到您的xml字段:

android:inputType="numberDecimal"

答案 1 :(得分:0)

1)检查用户是否具有美国英语语言环境,在许多情况下,用户可能包含浮动文字特定语言。

2)从Float.parseFloat()中删除set_temp.getText()。toString()并检查set_temp.getText()。toString()返回正确的数字字符串文字,然后将其传递给parseInt()。