Java 如何填充数组

Java how to fill array

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++;
    }

}

这个方法给我这个输出:

1.1 4.4 9.9 16.16 25.25 36.36 49.49

但是我需要一个数组来用for循环存储上面的数字。现在它只存储 1.0 4.0 9.0 etc...

有什么操作建议吗?

还有其他更有效的方法,但最简单的方法就是将您正在打印的内容解析回浮点数:

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

正如 SMA 在评论中指出的那样,由于舍入误差,这不会给出准确的答案。如果将数组类型更改为 BigDecimal:

,则可以存储准确的值
x[row] = new BigDecimal(String.format("%.0f.%.0f", sum, sum));