在java 里面,int 的最大值是:2147483647,现在如果想用比这个数大, 就用到了BigDecimal
BigDecimal 的加减乘除。。
BigDecimal bignum1 = new BigDecimal("10");
BigDecimal bignum2 = new BigDecimal("5");
BigDecimal bignum3 = null;
//加法
bignum3 = bignum1.add(bignum2);
System.out.println("和 是:" + bignum3);
//减法
bignum3 = bignum1.subtract(bignum2);
System.out.println("差 是:" + bignum3);
//乘法
bignum3 = bignum1.multiply(bignum2);
System.out.println("积 是:" + bignum3);
//除法 最好加上精度x, 否则进入无限循环时会抱错
bignum3 = bignum1.divide(bignum2,x,ROUND_DOWN);
System.out.println("商 是:" + bignum3); BigDecimal 的比较大小:
BigDecimal num1 = new BigDecimal("0");
BigDecimal num2 = new BigDecimal("1");
BigDecimal num3 = new BigDecimal("2");
BigDecimal num = new BigDecimal("1"); //用做比较的值
System.out.println(num1.compareTo(num)); //小于 时,返回 -1
System.out.println(num2.compareTo(num)); //等于 时,返回 0
System.out.println(num3.compareTo(num)); //大于 时,返回 1
设置精度:
BigDecimal.setScale()方法用于格式化小数点
setScale(1)表示保留一位小数,默认用四舍五入方式
setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位,如2.35会变成2.3
setScale(1,BigDecimal.ROUND_UP)进位处理,2.35变成2.4
setScale(1,BigDecimal.ROUND_HALF_UP)四舍五入,2.35变成2.4
setScaler(1,BigDecimal.ROUND_HALF_DOWN)四舍五入,2.35变成2.3,如果是5则向下舍
也可以存放比较大的数, 和 BigDecimal 的区别是 :BigInteger 存放的是大的整数,而BigDecimal 存放大的小数
本文介绍了Java中处理大数值的方法,包括使用BigDecimal进行精确的数学运算,如加减乘除及设置精度等操作;同时对比了BigInteger与BigDecimal的区别,并提供了具体的代码示例。
2220

被折叠的 条评论
为什么被折叠?



