在我的程序中,我将CAD转换为美元作为一个例子,当我加入10加元时,我得到9.14美元的回报,这是正确的。但在那之后,例如我添加50加元并转换它,它将显示60加元是54.86美元,它应该转换只有50加元而不是60.这是因为arraylist中的数字是添加,不知道该怎么办?
这是一个照片示例
private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {
double moneyValue = Double.parseDouble(moneyInput.getText());
int type = Integer.parseInt(typeInput.getText());
double conversion;
initialMoney.add(moneyValue);
if (moneyValue < 0){
errorLabel.setText("Value added is negative, please try again.");
}
else if(type < 1 || type > 20){
errorLabel.setText("An error has occurred, please try again.");
}
else if (moneyValue > 0){
if (type == 1){
conversion = initialCADtofinalUSD(moneyValue);
finalMoney.add(conversion);
}
else if (type == 2){
conversion = initialCADtofinalEUR(moneyValue);
finalMoney.add(conversion);
}
else if (type == 3){
conversion = initialCADtofinalCNY(moneyValue);
finalMoney.add(conversion);
}
else if (type == 4){
conversion = initialCADtofinalGBP(moneyValue);
finalMoney.add(conversion);
}
这是输出的地方
for (int i = 0; i < initialMoney.size(); i++){
initialMoneyOutput += initialMoney.get(i);
finalMoneyOutput += finalMoney.get(i);
}
DecimalFormat x = new DecimalFormat("0.00");
textAreaOutput.append("$" + x.format(initialMoneyOutput) + initialCurrencyAcronym + " is $" + x.format(finalMoneyOutput) + finalCurrencyAcronym + "\n");
答案 0 :(得分:0)
如果将整数存储在列表中,则ArrayList本身不会添加整数。 每个整数都是ArrayList中的新Int对象,并且与其他值无关。 实现中可能存在一些错误。 您能否发布您正在使用的代码段?
答案 1 :(得分:0)
在输出它的for循环之前将initialMoneyOutput和finalMoneyOutput初始化为0。
另外,为什么还需要在for循环中添加所有初始货币值。 只需获取最新的并转换它。
答案 2 :(得分:0)
试试这段代码:
而不是for循环,只需写下这个 -
initialMoneyOutput = initialMoney.get(initialMoney.size() - 1);
finalMoneyOutput = finalMoney.get(finalMoney.size() -1 );