gpt4 book ai didi

Java - 如何将字符串除以数字?

转载 作者:行者123 更新时间:2023-12-01 07:26:54 25 4
gpt4 key购买 nike

BigDecimal i = BigDecimal.ZERO;
for (int row = 0; row < testMark.length; row++) {
for (int col = 0; col < testMark[row].length; col++) {
i.add(new BigDecimal(testMark[row][col]));
}
}
i.divide(new BigDecimal(60D));
outPut.setText(i.toString());`

查看代码底部。我想将整个 classAver 字符串除以 60,如 outPut.setText(classAver/60);

数组double[][] testMark = new double[15][4];

String classAver = "";
for(int i=0; i < rowNumber; i++){
classAver += ((testMark[0][0] + testMark[0][1] + testMark[0][2] + testMark[0][3])
+
(testMark[1][0] + testMark[1][1] + testMark[1][2] + testMark[1][3]) +
(testMark[2][0] + testMark[2][1] + testMark[2][2] + testMark[2][3]) +
(testMark[3][0] + testMark[3][1] + testMark[3][2] + testMark[3][3]) +
(testMark[4][0] + testMark[4][1] + testMark[4][2] + testMark[4][3]) +
(testMark[5][0] + testMark[5][1] + testMark[5][2] + testMark[5][3]) +
(testMark[6][0] + testMark[6][1] + testMark[6][2] + testMark[6][3]) +
(testMark[7][0] + testMark[7][1] + testMark[7][2] + testMark[7][3]) +
(testMark[8][0] + testMark[8][1] + testMark[8][2] + testMark[8][3]) +
(testMark[9][0] + testMark[9][1] + testMark[9][2] + testMark[9][3]) +
(testMark[10][0] + testMark[10][1] + testMark[10][2] + testMark[10][3]) +
(testMark[11][0] + testMark[11][1] + testMark[11][2] + testMark[11][3]) +
(testMark[12][0] + testMark[12][1] + testMark[12][2] + testMark[12][3]) +
(testMark[13][0] + testMark[13][1] + testMark[13][2] + testMark[13][3]) +
(testMark[14][0] + testMark[14][1] + testMark[14][2] + testMark[14][3]));
}
outPut.setText(classAver); // <--How do I divide that number by 60?

最佳答案

编辑

鉴于您指定的数组是 double[15][4],您可以使用以下内容:

BigDecimal i = BigDecimal.ZERO;
for (int row = 0; row < testMark.length; row++) {
for (int col = 0; col < testMark[row].length; col++) {
i = i.add(new BigDecimal(testMark[row][col]));
}
}
i = i.divide(new BigDecimal(60D));
outPut.setText(i.toString());

以后,如果您想要获得超过 60 个结果的平均值:

BigDecimal i = BigDecimal.ZERO;
int count = 0;
for (int row = 0; row < testMark.length; row++) {
for (int col = 0; col < testMark[row].length; col++, count++) {
i = i.add(new BigDecimal(testMark[row][col]));
}
}
i = i.divide(new BigDecimal(count));
outPut.setText(i.toString());

旧答案

天哪,从哪里开始。

首先,循环:

for (int row = 0; row < 15; row++) { // these don't need to be concrete numbers ("15"), can be your array length
for (int col = 0; col < 4; col++) {
//append testMark[row][col]
}
}

其次,使用StringBuilder,不要在循环中附加字符串

StringBuilder sb = new StringBuilder();
for (int row = 0; row < 15; row++) {
for (int col = 0; col < 4; col++) {
sb.append(testMark[row][col]); //can append delimiters, etc
}
}
String value = sb.toString(); //Your complete value

然后,转换你的值(value):

BigInteger i = BigInteger.valueOf(classAver); //returns an int value
i = i.divide(new BigInteger(60));
outPut.setText(i.toString());

如果您不想将值添加为字符串,则可以将它们添加为数字:

BigInteger i = BigInteger.ZERO;
for (int row = 0; row < 15; row++) {
for (int col = 0; col < 4; col++) {
try {
int raw = Integer.parseInt(testMark[row][col]);
i = i.add(new BigInteger(raw));
} catch (NumberFormatException ex) {
System.err.println(String.format("Bad value caught! (Row: %d, Col: %d)", row, col));
}
}
}
i = i.divide(new BigInteger(60));
outPut.setText(i.toString());

关于Java - 如何将字符串除以数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23067032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com