使用 BigDecimal 计算小数点后的最大位数
Java 中 BigDecimal
值的小数点后最多可以有多少位?
What is the maximum number of digits we can have after the decimal point of a BigDecimal
value in Java?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
它(几乎)是无限的。如果将比例设置为整数的最大值,则可以存储大约 20 亿位小数点后的数字,但如果尝试这样做,可能会耗尽内存。如果您需要存储如此多的数字以至于限制成为问题,那么您可能需要重新考虑程序的设计。
请参阅 BigDecimal 文档:
It's (almost) unlimited. You can store roughly 2 billion digits after the decimal point if scale is set to the maximum value of an integer, although you may run out of memory if you try to do this. If you need to store so many digits that the limit is a problem then you probably need to rethink the design of your program.
See the BigDecimal documentation:
根据 BigDecimal Java 2 Platform 中提到的内容标准版。 5.0:
根据Java对32位整数的实现:
这意味着对于零或正数,小数点右侧有 2,147,483,647 位数字。
对于负比例数字,您已将 unscaledValue 向小数点右侧移动了 2,147,483,648 位。
According to what is mentioned in the BigDecimal Java 2 Platform Standard Ed. 5.0:
According to Java's implementation of 32-bit integers:
This means that for zero or positive scale numbers you have 2,147,483,647 digits to the right of the decimal point.
For negative scale numbers, you have unscaledValue shifted to the right of the decimal point by 2,147,483,648 digits.