java - BigDecimal 中的 setcal

标签 java bigdecimal

我有这个程序:

BigDecimal a = new BigDecimal("0.21556788990002");
        System.out.println(a.setScale(2));

我的结果是0.21,但是当我只想提取0.2时,我会尝试

for(int i=1; i<10; i++) System.out.println(a.setScale(i));

当 i= 1 时出现此错误:

at java.math.BigDecimal.divideAndRound(BigDecimal.java:1439) at java.math.BigDecimal.setScale(BigDecimal.java:2390) at java.math.BigDecimal.setScale(BigDecimal.java:2437) at NewClass.main(NewClass.java:30)

我可以用 i = 1 来提取什么?

最佳答案

您需要使用舍入模式进行缩放,对于您的情况,它将如下:

System.out.println(a.setScale(1, RoundingMode.FLOOR));

关于java - BigDecimal 中的 setcal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13072679/

相关文章:

java - 编写将包含在其他网站中的 js 的正确方法是什么?

java - 关于在java应用程序中使用HtmlUnit驱动程序单击超链接和按钮

java - 在 Java 中使用 BigDecimal 打印值

android - 应用程序因 BigDecimal 而崩溃

Java,BigDecimal。除法问题

java - 使用 EntityManager 对实体设置悲观锁

java - 错误 "No resource identifier found for attribute ' rectLayout'”

c# - 通过眼睛移动光标

java - 在某些情况下,BigDecimal 是否矫枉过正?

ruby-on-rails - 比较 bigdecimal 输出