Java计算数据小数截断,目前提供了下面几种方式,这些方式截断小数如下:
用的测试代码如下,里面有对几种方式的注释心得
public class Test {
public static void main(String[] args) {
BigDecimal bigDecimal1 = new BigDecimal(-25);
BigDecimal bigDecimal2 = new BigDecimal(7);
// 无论正数或者负数都进1
BigDecimal bigDecimal3 = bigDecimal1.divide(bigDecimal2, 2, BigDecimal.ROUND_UP);
System.out.println("bigDecimal3:" + bigDecimal3);
// 无论正数或者负数直接舍入,任何情况都不进1
BigDecimal bigDecimal4 = bigDecimal1.divide(bigDecimal2, 2, BigDecimal.ROUND_DOWN);
System.out.println("bigDecimal4:" + bigDecimal4);
// 正数在舍入的时候都进1;负数直接舍掉
BigDecimal bigDecimal5 = bigDecimal1.divide(bigDecimal2, 2, BigDecimal.ROUND_CEILING);
System.out.println("bigDecimal5:" + bigDecimal5);
// 正数直接舍掉,负数舍入时进1
BigDecimal bigDecimal6 = bigDecimal1.divide(bigDecimal2, 2, BigDecimal.ROUND_FLOOR);
System.out.println("bigDecimal6:" + bigDecimal6);
// 四舍五入
BigDecimal bigDecimal7 = bigDecimal1.divide(bigDecimal2, 2, BigDecimal.ROUND_HALF_UP);
System.out.println("bigDecimal7:" + bigDecimal7);
// 四舍五入
BigDecimal bigDecimal8 = bigDecimal1.divide(bigDecimal2, 2, BigDecimal.ROUND_HALF_DOWN);
System.out.println("bigDecimal8:" + bigDecimal8);
// 四舍五入
BigDecimal bigDecimal9 = bigDecimal1.divide(bigDecimal2, 2, BigDecimal.ROUND_HALF_EVEN);
System.out.println("bigDecimal9:" + bigDecimal9);
}