java 保留一位小数 小数点后一位数大于5 向上取整 小数点后一位数小于5 向下取整
时间: 2024-10-28 19:10:07 浏览: 24
java 保留两位小数的几种方法
5星 · 资源好评率100%
在Java中,你可以使用`BigDecimal`类以及它的`setScale`和`round`方法来实现这个需求。下面是一个示例代码:
```java
import java.math.BigDecimal;
import java.math.RoundingMode;
public class Main {
public static void main(String[] args) {
BigDecimal value = new BigDecimal("7.63"); // 测试数值
int scale = 1; // 保留一位小数
// 根据小数点后的数值决定是否向上或向下取整
int lastDigit = value.unscaledValue().divide(BigDecimal.TEN, scale, RoundingMode.DOWN).intValue(); // 获取最后一位数字
if (lastDigit >= 5) { // 如果大于等于5,则向上取整
value = value.add(new BigDecimal("0." + (9 - lastDigit)).setScale(scale, RoundingMode.UP));
} else { // 否则向下取整
value = value.setScale(scale, RoundingMode.DOWN);
}
System.out.println(value.toPlainString()); // 输出格式化后的字符串
}
}
```
这段代码首先创建了一个`BigDecimal`实例,然后通过`unscaledValue().divide()`获取小数点后的一位数字,并判断其大小。如果大于等于5,就加1并向上取整;如果小于5,直接向下取整。
需要注意的是,`RoundingMode.UP`表示向上取整,`RoundingMode.DOWN`表示向下取整。
阅读全文