如何从双精度中删除尾随零?

时间:2014-09-18 06:18:46

标签: java double currency

我的程序应该计算变化:

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二分之二。我已经尝试了几乎所有内容,BigDecimalNumberFormat DecimalFormat(##.###)我已经在程序中有一个字符串,并且不知道如何添加另一个字符串。

2 个答案:

答案 0 :(得分:0)

您不应使用浮点数来存储货币值。请改用BigDecimal 然后使用NumberFormat格式化输出结果。

答案 1 :(得分:0)

尝试将double值转换为整数或使用整数进行转换(double将为您提供浮动值)

 result = result + ((int) quarters) + "quarters";

或者可以使用Math.round()函数来舍入值..