用户希望从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"
//但为什么?
答案 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()。