2011-12-16 14 views
4

私はBigDecimalを使用して計算します。BigDecimalスケールと計算

result.setScale(4, RoundingMode.HALF_UP); 

.divideBigDecimalの方法規模と丸めを使用している場合ので、今、私はこのようにそれを行うには、必要とする:

BigDecimal result = bigDecimal1.divide(bigDecimal2, 10, RoundingMode.HALF_UP); 

だから、僕は使用私は計算の結果については 計算が正しいことを確認するのに十分な規模。 しかし、これがBigDecimalで計算を行う正しい方法であるかどうかわかりません。これについて疑問があります。

どのポインタも高く評価されています。

+1

と質問されています。 – jarnbjo

+0

@jarnbjo私はそれを正しくやっているのですか?もしそうでなければ、私はどうすればいいのですか? ... –

+1

あなたはそれを正しくやっているかどうかを判断するための機能的要件を私たちに提供しましたか? – jarnbjo

答えて

2

あなたは正しい答えと考えるものを明確にする必要があります。エラーが1e-10より小さい場合、それはokか、1e-20か1e-30などである必要があります。多くの除算結果では、結果が小数で表されるため、正確な結果を得ることはできません。

BTW:有効数字が15桁未満の場合、これはdoubleを使用する精度であり、BigDecimalを使用する必要はありません。

0.333333333または0.333333333333333333と見なされますが、まったく正確ではない(すなわち、長さが無限大)

+0

洞察のおかげで –