首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在除法BigInteger时减去标度,在乘积时加起来?

为什么在除法BigInteger时减去标度,在乘积时加起来?
EN

Stack Overflow用户
提问于 2014-01-26 20:48:14
回答 1查看 237关注 0票数 2

我有一些数据,我试图用一个不断增加的分母来精确地操作。

请假定分子总是有小数。

我在文档中看到,divide(BigDecimal divisor)实际上会减少标度,这似乎很奇怪,因为当我理解“刻度”的用法时,小数点以上的数字数应该在除法后增加。

我还在文档中看到,multiply(BigDecimal multiplicand)增加了规模。根据我对小数点的理解,这也是没有意义的,因为需要小数点以上的数字的两个乘数的可能性降低了。

这些是在文档中输入的吗?

如果没有,我对比例的理解是否不正确?

如果没有,如何通过一个不断增加的分母来保持精度,以增加小数点以上的数字数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-26 20:59:12

这实际上就是http://en.wikipedia.org/wiki/Scientific_notation。正如在文档中所述,BigDecimal的值是:

代码语言:javascript
复制
unscaledValue × 10^(-scale)

因此,将两个BigDecimals相乘相当于乘以它们的unscaledValues和添加它们的scales:

代码语言:javascript
复制
   a * b
== (uA * 10^-sA) * (uB * 10^-sB)
== (uA * uB) * 10^-(sA + sB)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21368986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档