Привет, У меня возникла проблема при создании калькулятора изменений для школьного задания. По сути, это вычисление наименьшего количества изменений, необходимых для определенной суммы денег.Ошибка округления?
- Исх. $ 5,36:
- 2 Мультяшки Toon (2 $)
- 1 Луни (1 $)
- 1 квартал
- 1 цент
- 0 никелевые
- 1 пенни
я заявил вся моя переменная должна быть удвоена, поэтому я могу рассчитать значения и общие суммы. Кажется, что он отлично работает на целых числах (5,00, 6,00, 7,00), но беспорядок, когда я добавляю десятичное место. Например, когда я говорю $ 5,25, он должен сказать 2 человека-одиночки и 1 квартал. Я думаю, что это может быть ошибка в округлении или что-то не так с моими расчетами. Любая помощь приветствуется. Ниже приведены расчеты кода:
//Rounding to one number
DecimalFormat oneDigit = new DecimalFormat ("#,0");
//Ask user for input
String moneyinput = JOptionPane.showInputDialog ("Welcome to the Change Caluculator. "
+ "Please Enter your amount of money in Dollars ($): ");
//Take user input and create into string.
totmoney = Double.parseDouble (moneyinput);
//Calculate number of toonies
numtoonies = (totmoney/toonieval);
System.out.println ("There is a total of " + oneDigit.format (numtoonies) + " toonies.");
//Find new amount
totmoney = (totmoney%toonieval);
//Calculate the number of loonies
numloonies = (totmoney/loonieval);
//Find new amount
totmoney = (totmoney-numloonies);
System.out.println ("There is a total of " + oneDigit.format (numloonies) + " loonies.");
//Calculate number of quarters
numquarters = (totmoney/quarterval);
//State the about of Coins
System.out.println ("There is a total of " + oneDigit.format (numquarters) + " quarters.");
}
Мне сказали использовать Decimalformat, чтобы при выполнении вычисления Я получаю целое число на выходе вместо десятичного. Я думаю, что делаю все правильно в вычислениях, но я получаю странный ответ, когда его не целое число. – Dave555