JAVA - 减去双精度返回不精确值

时间:2017-03-23 02:18:07

标签: java

我无法从我减去两个双精度的方法中返回精确值。我正在创建一个"银行"软件和这种方法我计算当前的利率,设定为30%,每增加5个新账户,减少2%。

这是我的代码:

public class BankAccount {
    //static properties
    private static double interest = 0.3;
    private static ArrayList<BankAccount> accounts = new ArrayList<>();

    public static double getInterestRate() {
        int y = accounts.size();
        double x = interest;
        if (y != 0 && y % 5 == 0) {
            x-=0.02;
        }
        return x;
    }
}

我添加5个账户后,我的方法应该返回28%的利率(.28),但它返回的值为27.999999999999997%(0.27999999999999997)。我知道这是浮点数,但我不确定如何解决这个问题。我无法通过我的任何测试用例,这些测试用例都在寻找28%,26%等等......

我想使用BigDecimal类,但这是一项家庭作业,并自动评分。为此,我们给出了一个框架代码模板,因此我们使用了所有正确的变量和类型。

0 个答案:

没有答案