Моя программа должна вычислить изменение:Как удалить конечный ноль из двойника?
double purchaseAmount = Double.parseDouble(s1);
double amountGiven = Double.parseDouble(s2);
double change = purchaseAmount - amountGiven;
JOptionPane.showMessageDialog(null, change);
String result = "Change consists of:";
Мои изменения подсчитанное в счета и монет. Но как только я получаю к монетам, которые дважды:
double quarters = 0;
if (change >= .25) {
quarters = change/.25;
change = change - quarters * .25;
result = result + quarters + "quarters";
change = change - quarters % .25;
}
Результат дает мне косую .0 к примеру, вместо того, чтобы говорить мне мое изменение составляет 1 двадцать 2 кварталов. Я получаю 1 двадцать 2.0 кварталов. Я пробовал почти все, BigDecimal
, NumberFormat
DecimalFormat(##.###)
У меня уже есть строка в программе и не знаю, как добавить другую.
Вы не должны пытаться делать точные вычисления (которые вы, вероятно, хотите делать, когда говорите о деньгах) с использованием типов с плавающей запятой. – merryprankster
Учитывая, что вы не можете иметь дробное количество кварталов, почему вы все равно сохраняете это в 'double'? (Ваша строка 'change = change-quarters% .25;' выглядит для меня слишком сомнительной ...) Я бы предположил, что вы меняете стоимость от доллара до центов, чтобы начать, и делайте * все * в целочисленной арифметике после этого. Это сделает жизнь намного проще. –
'result + quarters +" quarters "' <- значение 'quarters' должно быть отформатировано в строке там в соответствии с желаемыми правилами; использование 'int' может быть достаточным для« решения »этой проблемы, так как таковая не содержит дробную информацию для запуска. – user2864740