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));
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));