BigDecimal四舍五入object类型数据不保留两位小数
时间: 2023-06-06 16:07:27 浏览: 96
答:可以使用BigDecimal类的setScale方法进行四舍五入,并使用DecimalFormat格式化输出保留两位小数的结果。示例代码如下:
```
Object obj = 123.456;
BigDecimal bd = new BigDecimal(String.valueOf(obj));
bd = bd.setScale(2, RoundingMode.HALF_UP);
DecimalFormat df = new DecimalFormat("#0.00");
System.out.println(df.format(bd));
```
该代码会将obj转为BigDecimal类型,并进行四舍五入,保留两位小数。最终输出123.46。
相关问题
BigDecimal的api
BigDecimal是Java中提供的一个用于精确计算的类,它可以处理任意精度的十进制数。下面是一些BigDecimal类常用的API:
1. 创建BigDecimal对象:
- `BigDecimal(String val)`:使用字符串表示的数值创建一个BigDecimal对象。
- `BigDecimal(double val)`:使用double类型的数值创建一个BigDecimal对象。
2. 基本运算方法:
- `add(BigDecimal augend)`:将当前BigDecimal对象与指定的BigDecimal对象相加。
- `subtract(BigDecimal subtrahend)`:从当前BigDecimal对象中减去指定的BigDecimal对象。
- `multiply(BigDecimal multiplicand)`:将当前BigDecimal对象与指定的BigDecimal对象相乘。
- `divide(BigDecimal divisor, int scale, RoundingMode roundingMode)`:将当前BigDecimal对象除以指定的BigDecimal对象,并指定小数位数和舍入模式。
3. 比较方法:
- `compareTo(BigDecimal val)`:将当前BigDecimal对象与指定的BigDecimal对象进行比较。
- `equals(Object x)`:比较两个BigDecimal对象是否相等。
4. 精度和舍入:
- `setScale(int newScale, RoundingMode roundingMode)`:设置BigDecimal对象的小数位数和舍入模式。
- `round(MathContext mc)`:使用指定的精度进行四舍五入。
5. 其他常用方法:
- `abs()`:返回当前BigDecimal对象的绝对值。
- `intValue()`:将当前BigDecimal对象转换为int类型。
- `doubleValue()`:将当前BigDecimal对象转换为double类型。
以上是BigDecimal类的一些常用API,你可以根据具体需求选择合适的方法进行使用。
阅读全文