我正在编写一个程序,我必须在其中重复乘以 2 BigDecimal
。
第 27 次迭代后,我得到:
0.905225895893387921845435055445776361046057346344145563957027726
使用此数字的任何进一步计算都会(BigDecimal * 0.182365681285)
导致尾随零。所以下一次迭代返回:
0.905225895893387921845435055445776361046057346344145563957027726000000000000
之后的迭代返回:
0.905225895893387921845435055445776361046057346344145563957027726000000000000000000000000
ETC..
所以我想知道这是否是由于BigDecimal
.
任何帮助表示赞赏
编辑:我被要求发布我的代码。我可以复制粘贴我拥有的几页,但这是迄今为止我所拥有的非常准确的表示:
BigDecimal range = new BigDecimal(0.0012440624293146346);
for(int i = 0; i < 50 ; i++){
low = low.multiply(range);
}