私はJavaでbigdecimalを使って丸めようとしていて、非終入小数の展開を表示しているjava.lang.ArithmeticExceptionエラーが発生しています。BigDecimalで丸めますか?
私はかなり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" があります。
https://docs.oracle.com(e'は 'int'、'新規のBigDecimal(String.valueOf(E)) '[' BigDecimal.valueOf(E)]であるべきであるので ' /javase/7/docs/api/java/math/BigDecimal.html#valueOf%28long%29)。 – Andreas
@Andreasは、新しい参照場所を作成して余分なメモリ空間を占有する代わりに、expが参照する値を置き換えるだけです。 – TheLiquor
@ TheLiquor 'int'は' int'なので、BigDecimalに変換するのは簡単で高速ですが、 'int'を文字列にフォーマットして、 BigDecimalへの*解析*は遅く無駄です。 – Andreas