java - 是否可以找出 BigDecimal 在某个点之后是否只重复出现零?

标签 java bigdecimal

具体来说,我想知道是否可以确定小数点后两位之后的所有内容是否始终为零。

例如,在这种情况下:

    BigDecimal m1 = new BigDecimal("15");
    BigDecimal m2 = new BigDecimal("2");
    BigDecimal m3 = m1.divide(m2, 5, BigDecimal.ROUND_CEILING);
m3 is equal to 7.50000 (and there will still be 0s even if you increase the precision)

情况并非如此的示例

    BigDecimal m1 = new BigDecimal("11.24");
    BigDecimal m2 = new BigDecimal("6");
    BigDecimal m3 = m1.divide(m2, 5, BigDecimal.ROUND_CEILING);
m3 is equal to 1.87334

另一种可能情况并非如此(无法想到除法值)是当

 m3 is equal to 7.50000001

感谢您的帮助(如果答案简单/简单,我深表歉意!)

最佳答案

内置的stripTrailingZeros怎么样。那么您就不必进行额外的舍入计算。

m3.stripTrailingZeros().scale() <= 2

关于java - 是否可以找出 BigDecimal 在某个点之后是否只重复出现零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30628902/

相关文章:

java - 从 Eclipse 中调试 gradle 测试

java - 在 eclipse 中运行 JUnit 测试后,我可以将结果导出为 XML 格式。如何使用 JUnit 命令行获取该 xml 文件?

java - 可以用 ArrayList 来存储 WebElements 吗?

java - 获取包含复数小数的数组列表的总和

java - BigDecimal 添加错误值

java - 一个单例类来设计一副通用的牌?

java - Java Applet 的问题

java - 将 BigDecimal 转换为 scale = 2 的相反数

java - 如何使用 Java 的 BigDecimal 正确计算?

java - BigDecimal 科学计数法 String 和普通 String