小记-Java保留两位小数-使用BigDecimal
参考自:https://www.cnblogs.com/limin12891/p/11116680.html及jdk1.8文档如下例:
double a = 1;
double b = 3;
BigDecimal num1 = new BigDecimal("" + a);
BigDecimal num2 = new BigDecimal("" + b);
// 四舍五入保留两位小数
BigDecimal result1 = num1.divide(num2, 2, BigDecimal.ROUND_HALF_UP);
// 保留3位小数
BigDecimal result2 = num1.divide(num1, 3, BigDecimal.ROUND_HALF_UP);
System.out.println(result1);
System.out.println(result2);
其中divide的第三个参数用于设定保留的规则:
ROUND_HALF_UP即:四舍五入
还有其它可设定值:
值 | 含义 |
---|---|
ROUND_DOWN | 向零方向舍入 |
– | – |
ROUND_UP | 向远离0的方向舍入 |
– | – |
ROUND_CEILING | 向正无穷方向舍入 |
– | – |
ROUND_FLOOR | 向负无穷方向舍入 |
– | – |
ROUND_HALF_DOWN | 相当于五舍六入 |
– | – |
ROUND_HALF_EVEN | 不展开描述 |
– | – |
ROUND_UNNECESSARY | 不需要舍入模式 (无尽报错) |
– | – |