Java 如何在循环内将字符串转换为浮点
我必须将字符串转换为float我是这样做的:Java 如何在循环内将字符串转换为浮点,java,string,floating-point,Java,String,Floating Point,我必须将字符串转换为float我是这样做的: float[] iLongs = new float[mLongs.length]; for(int i = 0; i < iLongs.length ; i++){ iLongs[i] = Float.valueOf(mLongs[i]).floatValue(); } float[]iLongs=新浮点[mLongs.length]; 对于(int i=0;i
float[] iLongs = new float[mLongs.length];
for(int i = 0; i < iLongs.length ; i++){
iLongs[i] = Float.valueOf(mLongs[i]).floatValue();
}
float[]iLongs=新浮点[mLongs.length];
对于(int i=0;i
但它抛出numberformat异常
但是如果我在任何循环外使用相同的函数,它就会工作。
怎么办?代码看起来不错,这让我怀疑这是数据问题。您需要验证MLONG的每个索引是否包含一个实际上作为浮点值有效的字符串,如何做到这一点取决于您。您的代码没有问题。
发生异常,因为字符串不是浮点,无法分析。最常见的错误是-,而不是。您在语法上是正确的。我认为问题出在长句上。它可能包含一些字母字符 备选代码:
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
你为什么不使用?是什么字符串导致了
NumberFormatException
?这与循环无关,而与mLongs
中字符串的值有关。我认为在将string Array
转换为“Float Array”时,应该包含生成mLongs
的代码,以便我们可以重现问题。这将有助于我们抓住问题的核心。