我必须将String转换为float我就是这样做的:
float[] iLongs = new float[mLongs.length];
for(int i = 0; i < iLongs.length ; i++){
iLongs[i] = Float.valueOf(mLongs[i]).floatValue();
}
但它会引发数字格式异常
但是如果我在任何循环之外使用相同的函数它就可以工作。 怎么办?
答案 0 :(得分:3)
代码看起来很好,这让我怀疑这是一个数据问题。你需要验证mLongs的每个索引都包含一个实际上作为浮点有效的字符串,你如何做到这一点取决于你。
答案 1 :(得分:1)
替代代码:
class StringToFloat {
public static void main (String[] args) {
// String s = "hello"; // do this if you want an exception
String s = "100.00";
try {
float f = Float.valueOf(s.trim()).floatValue();
System.out.println("float f = " + f);
}
catch (NumberFormatException e) {
System.out.println("NumberFormatException: " + e.getMessage());
}
}
}
// Output :float f = 100.0
答案 2 :(得分:0)
您的代码没有任何问题。 发生异常,因为String不是Float且无法解析。最常见的错误 - 而不是。
答案 3 :(得分:0)
你的语法正确。我认为问题在于mLongs。它可能包含一些字母字符。