2015-02-23 41 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