| CEILING
向正舍入,如:1.1取2,-1.8取-1 等价枚举: BigDecimal.ROUND_CEILING |
| DOWN
不舍入,如:1.1取1,-1.8取-1 等价枚举: BigDecimal.ROUND_DOWN |
| FLOOR
向负舍入,如:1.8取1,-1.1取-2 等价枚举: BigDecimal.ROUND_FLOOR |
| HALF_DOWN
五舍六入 等价枚举: BigDecimal.ROUND_HALF_DWON |
| HALF_EVEN
整数位若是奇数则四舍五入,若是偶数则五舍六入 等价枚举: BigDecimal.ROUND_HALF_EVEN |
| HALF_UP
四舍五入 等价枚举: BigDecimal.ROUND_HALF_UP |
| UNNECESSARY
如果设保留两位,但传入数值是三位以上的小数,则抛出 ArithmeticException 异常 等价枚举: BigDecimal.ROUND_UNNECESSARY |
| UP
大于0进位,保留两位小数 例:3.333结果3.34,-3.333结果-3.34 等价枚举: BigDecimal.ROUND_UP |
| 返回类型 | 方法描述 |
|---|---|
| BigDecimal | add(BigDecimal augend) 相加 |
| BigDecimal | subtract(BigDecimal) 相减 |
| BigDecimal | multiply(BigDecimal) 相乘 |
| BigDecimal | divide(BigDecimal) 相除 |
| String | toString() 数值转换成字符串 |
| double | doubleValue() 值以双精度数返回 |
| float | floatValue() 值以单精度数返回 |
| long | longValue() 值以长整数返回 |
| int | intValue() 值以整数返回 |
| BigDecimal | setScale(int newScale) 保留指定位小数 |
| BigDecimal | setScale(int newScale, int roundingMode) 指定模式保留指定位小数 |
BigDecimal bd = new BigDecimal("22"); //整型构造
BigDecimal bd0 = new BigDecimal(Double.toString(1.11111)); //双精度构造
注:凡数值型,必须使用Double.toString()、Long.toString()等转换为字符串,直接转换会出错
bd0 = bd.setScale(2, RoundingMode.HEAFL_UP); //保留3位小数,且四舍五入
BigDecimal bd1 = bd.add(bd0); //加法