BigDecimal用法

    xiaoxiao2022-07-01  103

    import java.math.BigDecimal; /** * Created by gailun on 2018/7/12. */ public class Demo1 { public static void main(String[] args) { BigDecimal bigDecimal = new BigDecimal(54.568); BigDecimal bigDecimal1 = new BigDecimal(30.151); BigDecimal bigDecimal2 = new BigDecimal(54.565); BigDecimal bigDecimal6 = new BigDecimal("3"); // 1.两个BigDecimal相加 // 1.1 相加 BigDecimal add = bigDecimal.add(bigDecimal1); System.out.println(add); // 1.2 相加保留两位小数 // 1.2.1 相加保留两位小数, 直接删除多余的小数位, 如84.719会变成84.71 BigDecimal add1 = bigDecimal.add(bigDecimal1).setScale(2, BigDecimal.ROUND_DOWN); System.out.println(add1); // 1.2.2 进位处理, 84.719变成84.72 BigDecimal add2 = bigDecimal.add(bigDecimal1).setScale(2,BigDecimal.ROUND_UP); System.out.println(add2); // 1.2.3 四舍五入, 84.719变成84.72 BigDecimal add3 = bigDecimal.add(bigDecimal1).setScale(2, BigDecimal.ROUND_HALF_UP); System.out.println(add3); // 1.2.4 四舍五入, 如果是5则向下舍, 54.565变成54.56 BigDecimal add4 = bigDecimal.add(bigDecimal1.setScale(2, BigDecimal.ROUND_HALF_DOWN)); System.out.println(add4); BigDecimal bigDecimal3 = bigDecimal2.setScale(2, BigDecimal.ROUND_HALF_DOWN); System.out.println(bigDecimal3); System.out.println("========================="); // 2. 两个BigDecimal相减 // 2.1 相减 BigDecimal subtract = bigDecimal.subtract(bigDecimal1); System.out.println(subtract); // 2.2 相减保留两位小数 // 2.2.1 相减保留两位小数, 直接删除多余的小数位, 如24.417会变成24.41 BigDecimal subtract1 = bigDecimal.subtract(bigDecimal1).setScale(2, BigDecimal.ROUND_DOWN); System.out.println(subtract1); // 2.2.2 进位处理, 24.417变成24.42 BigDecimal subtract2 = bigDecimal.subtract(bigDecimal1).setScale(2, BigDecimal.ROUND_UP); System.out.println(subtract2); // 2.2.3 四舍五入, 24.417变成24.42 BigDecimal subtract3 = bigDecimal.subtract(bigDecimal1).setScale(2, BigDecimal.ROUND_HALF_UP); System.out.println(subtract3); System.out.println("===================="); // 3. 两个BigDecimal相乘 // 3.1 相乘 BigDecimal multiply = bigDecimal.multiply(bigDecimal1); System.out.println(multiply); // 3.2 相乘保留两位小数 // 3.2.1 相乘保留两位小数, 直接删除多余的小数位, 如1645.279会变成1645.27 BigDecimal multiply1 = bigDecimal.multiply(bigDecimal1).setScale(2, BigDecimal.ROUND_DOWN); System.out.println(multiply1); // 3.2.2 进位处理, 1645.279会变成1645.27 BigDecimal multiply2 = bigDecimal.multiply(bigDecimal1).setScale(2, BigDecimal.ROUND_UP); System.out.println(multiply2); // 3.2.3 四舍五入, 1645.279会变成1645.27 BigDecimal multiply3 = bigDecimal.multiply(bigDecimal1).setScale(2, BigDecimal.ROUND_HALF_UP); System.out.println(multiply3); System.out.println("=============="); // 4 两个BigDecimal相除 // 4.1 相除, 保留两位小数, 18.189会变为18.19 BigDecimal divide = bigDecimal.divide(bigDecimal6,2,BigDecimal.ROUND_HALF_UP); System.out.println(divide); // 4.2 相除, 保留三位小数 18.189 BigDecimal divide1 = bigDecimal.divide(bigDecimal6,3,BigDecimal.ROUND_HALF_UP); System.out.println(divide1); // 4.2 相除,保留两位小数,18.189会变为18.18 BigDecimal divide2 = bigDecimal.divide(bigDecimal6, 2, BigDecimal.ROUND_DOWN); System.out.println(divide2); } }

    (1) 问题 String string = null; BigDecimal b1 = new BigDecimal(string); BigDecimal b2 = new BigDecimal("9"); BigDecimal a = b1.add(b2); System.out.println(a);

    DecimalFormat 数字格式化

    Integer i = 1; DecimalFormat decimalFormat = new DecimalFormat("000"); String format = decimalFormat.format(i); System.out.println(format);

    最新回复(0)