2011-05-20 47 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