是否可以在每次点击按钮时减去BigDecimal?

时间:2017-02-19 01:12:18

标签: java

是否可以在每次点击按钮时减去BigDecimal?

public class Test extends JFrame {

BigDecimal amountPending;
BigDecimal myMoney = new BigDecimal("0.10");

JButton decrement;

public Test() {
    amountPending = new BigDecimal("5.5");

    setTitle("Test");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    decrement = new JButton("Decrement");
    decrement.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            BigDecimal x = amountPending.subtract(myMoney);
            System.out.println(x.doubleValue());
        }
    });

    add(decrement);

    setSize(100, 50);
    setResizable(false);
    setVisible(true);
}

public static void main(String[] args) {
    new Test();


   }
}

我正在尝试减少待处理的金额,但是当我使用double(非BigDecimal)时,结果将始终为1.0000000001

1 个答案:

答案 0 :(得分:2)

问题是你每次都在创建一个新变量x

您应该更新变量amountPending,即:

amountPending = amountPending.subtract(myMoney);
System.out.println(amountPending.doubleValue());