В моей программе я конвертирую CAD в USD в качестве примера, когда я ставлю 10 долларов США, я получаю обратно 9,14 доллара США, что верно. Но после этого, например, я добавляю $ 50 CAD и конвертирую его, он будет отображать $ 60 CAD - $ 54,86 USD, когда он должен конвертировать всего за 50 долларов США, а не за 60. Это потому, что цифры в arraylist добавляют и не знают, что делать?Предотвращение добавления 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");
Как насчет показать нам свой код? – Mureinik
Вы добавляете второе значение к первому * где-то в вашем коде *. Как вы ожидаете, что мы исправим его, не представив его? –
Вам нужно поделиться каким-то кодом для нас, чтобы выяснить, что не так, но, не видя ничего, я предполагаю, что вы повторно используете переменную (ту, которая содержит сумму, которую нужно преобразовать), и добавив к ней как-то. –