Android:java.lang.NumberFormatException:无效的int:"27.0"

Sco*_*ott 1 java android integer numberformatexception numberpicker

我没有找到这个小数为0的问题的答案,所以......

//Value of row.get(2) = "27.0"

private NumberPicker numEntry;
numEntry.setMaxValue(40);
numEntry.setMinValue(15);
numEntry.setValue(Integer.valueOf(row.get(2)));
Run Code Online (Sandbox Code Playgroud)

错误信息:

05-27 14:30:51.576  10143-10143/com.exampleapp.app E/AndroidRuntime? FATAL EXCEPTION: main java.lang.NumberFormatException: Invalid int: "27.0"
Run Code Online (Sandbox Code Playgroud)

我尝试了几种不同的方法将字符串"27.0"转换为整数27,Math.floor,parseInt ......通过html从网络中提取ArrayList行,因此它以字符串fyi开始生命.

如何将NumberPicker设置为此初始值?

Alb*_*ski 5

我认为你可以使用java.text.NumberFormat类:

Number num = NumberFormat.getInstance().parse(row.get(2));
int desiredInt = num.intValue();
Run Code Online (Sandbox Code Playgroud)


Mar*_*rno 5

我会做的

(int)Double.parseDouble(row.get(2));
Run Code Online (Sandbox Code Playgroud)

所以它会

numEntry.setValue((int)Double.parseDouble(row.get(2)));
Run Code Online (Sandbox Code Playgroud)

它将处理double,整数等.NumberFormatException只有在它是无效数字时才会抛出.

你应该只担心double不适合int.但我不认为这是一个问题.