java - 在Java中,如何在不考虑连续小数位权重的情况下获得数字的前2位小数?

标签 java bigdecimal

在 Java 中,我有一个可以包含十进制数字的 Number 对象。

例如,它可能类似于:123.456789

其中123是我的号码的整数部分,456789是小数部分。

好的。如何在不考虑连续小数位权重的情况下仅保留前 2 位小数来获得相同的数字。

例如,如果我想要仅包含前 2 位小数的数字,我希望获得 123.45 而不是 123.46 (近似值,因为后面的小数位 >5)。

我还需要,如果我有一个整数3,我想获得它的前两位小数,即3.00

我该怎么做?

最佳答案

尝试像下面这样的 setScale 方法

BigDecimal value = new BigDecimal("123.456789");
BigDecimal bg2 = value.setScale(2, RoundingMode.DOWN);
System.out.println(bg2);

Output:
123.45

For input as 3, output is 3.00

关于java - 在Java中,如何在不考虑连续小数位权重的情况下获得数字的前2位小数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27503378/

相关文章:

floating-point - 为什么/何时使用 float 而不是 BigDecimal

java - Float 无法取消引用 - 使用 BigDecimal

java - 如何仅将 BigDecimal 的整数部分转换为十六进制字符串?

java - Hibernate 不会将鉴别器列添加到表中

关于泛型方法调用的 Java 类型提示

java - 如何在 Java 中对 BigDecimal 进行小数幂运算?

Java : Rounding a decimal value to HALF_EVEN

java - 如何使用geoTools api读取MID/MIF文件

c# - 如何在CUBRID数据库中用C#调用Java存储过程

java - 如何将父表和子表数据移动到存档表(具有相同的列)