Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 新十进制格式后的浮点无效_Java_Android_Floating Point_Decimal - Fatal编程技术网

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

Java 新十进制格式后的浮点无效,java,android,floating-point,decimal,Java,Android,Floating Point,Decimal,用户希望从EditText“设置温度”升高温度。 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: r

用户希望从EditText“设置温度”升高温度。 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"

//但是为什么呢?

看起来您正在解析一个文本字段,该字段包含无效的十进制格式

 float temp = Float.parseFloat(set_temp.getText().toString());
您的
set\u temp
字段包含
“49,9”
,该字段应为
“49.9”

我想他们可以输入字段。您需要将其限制为仅限数字字段。不是纯文本。(要删除
输入)

将以下内容添加到字段的xml中:

android:inputType="numberDecimal"

看起来您正在分析包含无效十进制格式的文本字段

 float temp = Float.parseFloat(set_temp.getText().toString());
您的
set\u temp
字段包含
“49,9”
,该字段应为
“49.9”

我想他们可以输入字段。您需要将其限制为仅限数字字段。不是纯文本。(要删除
输入)

将以下内容添加到字段的xml中:

android:inputType="numberDecimal"
1) 检查用户是否具有美国英语语言环境,在许多情况下,用户可能包括特定于语言的浮点文本

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

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


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

逗号而不是
句号可能具有讽刺意味的是,答案只比他的问题高一行:(@svarog我假设它来自用户输入,因为没有其他东西会产生逗号。读取日志是一项有用的技能。
set_temp.getText().toString()
是罪魁祸首,他至少应该抓住例外并继续
逗号而不是
句号可能是可悲的讽刺是答案只比他的问题高出一行:(@svarog我认为它来自用户输入,因为其他任何东西都不会产生逗号。读取日志是一项有用的技能。
set_temp.getText()。toString()
是罪魁祸首,他至少应该捕获异常并移动android:inputType=“numberDecimal”不能解决问题。十进制是(0.0)但在我的字段中有0,0之后…android:inputType=“numberDecimal”无法解决问题。DecimalFormat是(0.0),但在我的字段中有0,0之后。。。