如何在循环内将String转换为float

时间:2011-05-20 12:28:02

标签: java string floating-point

我必须将String转换为float我就是这样做的:

float[] iLongs = new float[mLongs.length];
for(int i = 0; i < iLongs.length ; i++){
    iLongs[i] = Float.valueOf(mLongs[i]).floatValue();
}   

但它会引发数字格式异常

但是如果我在任何循环之外使用相同的函数它就可以工作。 怎么办?

4 个答案:

答案 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。它可能包含一些字母字符。

相关问题