2011-05-20 52 views
-3

我必须将字符串转换成浮动我做它像这里面:如何将字符串转换成浮动环

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

但它引发的NumberFormat异常

但是,如果使用相同的功能在任何循环之外工作。 怎么办?

+2

你为什么不使用['Float.parseFloat()'](http://download.oracle.com/javase/6/docs/api/java /lang/Float.html#parseFloat%28java.lang.String%29)?什么是导致NumberFormatException的字符串? – 2011-05-20 12:30:45

+5

这与循环无关,与'mLongs'中的字符串值有关。 – 2011-05-20 12:30:55

+0

我想你把'String Array'转换成'Float Array' – 2011-05-20 12:34:49

回答

3

该代码看起来很好,这让我怀疑它是一个数据问题。您需要验证每个用于mLong的索引都包含一个实际上作为浮点数有效的字符串,您如何实现这一点取决于您。

0

你的代码没有问题。 发生异常是因为String不是Float而不能被解析。最常见的错误 - 而不是。

0

你是正确的语法。我认为问题在于液体。它可能包含一些字母字符。

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