我的程序应该计算变化:
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二十二个季度。我得到1 20二分之二。我已经尝试了几乎所有内容,BigDecimal
,NumberFormat
DecimalFormat(##.###)
我已经在程序中有一个字符串,并且不知道如何添加另一个字符串。
答案 0 :(得分:0)
您不应使用浮点数来存储货币值。请改用BigDecimal
然后使用NumberFormat格式化输出结果。
答案 1 :(得分:0)
尝试将double值转换为整数或使用整数进行转换(double将为您提供浮动值)
result = result + ((int) quarters) + "quarters";
或者可以使用Math.round()函数来舍入值..