gpt4 book ai didi

java - 使用 BigDecimal 舍入?

转载 作者:行者123 更新时间:2023-12-01 10:06:07 25 4
gpt4 key购买 nike

我一直在尝试在java中使用bigdecimal进行舍入,并且遇到了java.lang.ArithmeticException错误,该错误显示非终止十进制扩展。

谁能解释一下错误的根源,因为我对java很陌生?并帮助我编写代码?

谢谢

protected BigDecimal p;
protected BigDecimal q;
protected BigDecimal d;
protected BigDecimal det;
protected BigDecimal exp;
protected int e;

this.p = pq.getP();
this.q = pq.getQ();

det = ((p.subtract(BigDecimal.ONE)).multiply(q.subtract(BigDecimal.ONE)));
exp = new BigDecimal(String.valueOf(e));

d = (det.divide(exp).setScale(2,BigDecimal.ROUND_HALF_UP));

变量“d”是我认为发生错误的地方。

最佳答案

进行分割时需要设置比例。

d = det.divide(exp, 2, BigDecimal.ROUND_HALF_UP);

注意:使用带有舍入的 double 可能会更干净且不易出错。

exp = new BigDecimal(e); // does the same thing if e is an int

关于java - 使用 BigDecimal 舍入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36457157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com