2015-02-23 39 views
0
public static void main(String[] args) { 

float numberF[]=new float[7]; 
displayF(numberF); 

} 

public static void displayF(float x[]) { 

    int one = 1; 
    double sum = 0; 
    for (int row = 0; row < x.length; row++) { 
     sum = Math.pow(one, 2); 
     x[row] = (int) sum; 

     System.out.printf("%.0f.%.0f ",x[row], x[row]); 
     one++; 
    } 

} 

這種方法可以讓我這樣的輸出:的Java如何填寫陣列

1.1 4.4 9.9 16.16 25.25 36.36 49.49 

但我需要數組的數字存儲上面一個for循環。現在只有商店1.0 4.0 9.0 etc...

任何建議如何做到這一點?

+0

這與堆棧有什麼關係? – 2015-02-23 09:04:24

+0

@安迪我的錯誤,改變了這一點。 – 2015-02-23 09:11:14

回答

0

還有其他更有效的方式來做到這一點,但最簡單的就是解析你所打印回一個浮動:

x[row] = Float.parseFloat(String.format("%.0f.%.0f", sum, sum)); 

正如在評論中指出的SMA,該億韓元由於四捨五入錯誤而沒有給出確切的答案。如果將陣列類型更改爲BigDecimal,則可以存儲確切的值:

x[row] = new BigDecimal(String.format("%.0f.%.0f", sum, sum)); 
+0

不,它不會工作,因爲你可能有舍入錯誤! – SMA 2015-02-23 09:09:18

+0

@SMA:當然,但如果你正在填充的數組是float []類型,那麼這是最好的。 – 2015-02-23 09:10:51

+0

作爲魅力! – 2015-02-23 09:18:38