开发者

How to convert a String into float inside a loop

I have to convert String into float I am doing it like this :

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

But it 开发者_如何学运维throws numberformat exception

But if I use the same function outside any loop it works. What to do ?


The code looks fine, which leads me to suspect that it's a data issue. You need to verify that every index for mLongs contains a String that is actually valid as a float, how you do that is up to you.


Alternative code :

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


There is nothing wrong with your code. Exception happend because String is not a Float and cannot be parsed. Most common mistake - , instead of .


You are correct syntactically. I think problem is in mLongs. It might contain some alphabetic character.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜