BIgDecimal 保留两位小数 的java代码
时间: 2023-10-31 19:17:10 浏览: 97
你可以使用 `setScale()` 方法来设置 `BigDecimal` 对象的小数位数,并使用 `ROUND_HALF_UP` 舍入模式来保留两位小数。下面是一个示例代码:
```java
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Main {
public static void main(String[] args) {
BigDecimal number = new BigDecimal("12.3456789");
BigDecimal result = number.setScale(2, RoundingMode.HALF_UP);
System.out.println(result); // 输出 12.35
}
}
```
在上面的代码中,我们使用 `setScale(2, RoundingMode.HALF_UP)` 将 `BigDecimal` 对象 `number` 设置为保留两位小数并使用四舍五入的舍入模式。然后,我们将结果存储在 `result` 变量中,并输出它。
相关问题
BIgDecimal保留两位小数 java实现
在Java中,可以使用BigDecimal类来进行高精度的浮点数计算,并且可以通过设置精度保留指定小数位数。以下是一段代码示例:
```java
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal num1 = new BigDecimal("123.456789");
BigDecimal num2 = num1.setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println(num2);
}
}
```
在上面的示例中,首先创建了一个BigDecimal对象 `num1` 表示需要保留两位小数的浮点数。然后使用 `setScale` 方法设置精度为2,并且使用 `ROUND_HALF_UP` 模式进行四舍五入。最后输出保留两位小数的结果。
输出结果为:`123.46`。
Java代码中将bigdecimal保留两位小数
在Java中,如果你有一个`BigDecimal`类型的值,并想要将其格式化为只保留两位小数,你可以使用`DecimalFormat`类或者`MathContext`上下文。以下是两个示例:
1. 使用`DecimalFormat`:
```java
import java.text.DecimalFormat;
BigDecimal bd = new BigDecimal("123456789.1234567");
DecimalFormat df = new DecimalFormat("#.00");
String formattedBd = df.format(bd);
System.out.println(formattedBd); // 输出 "123456789.12"
```
2. 使用`MathContext`:
```java
import org.apache.commons.math3.stat.rational.Rational;
import org.apache.commons.math3.util.MathArrays;
BigDecimal bd = new BigDecimal("123456789.1234567");
MathContext mc = MathContext.DECIMAL128; // 设置保留128位精度,但默认舍入到最近整数
Rational rational = Rational.of(bd.unscaledValue(), bd.scale());
rational = rational.roundToScale(2); // 精确到两位小数
String formattedBd = rational.toString(); // 输出 "123456789.12"
```
阅读全文