在实际开开发过程中BigDecimal是一个经常用到的类:
它可以进行大数值的精确却运算,下面介绍一下它的加-减-乘-除以及N次幂的操作操作
import java.math.BigDecimal; public class Test02 { public static void main(String[] args) { BigDecimal num1 = new BigDecimal(5000); BigDecimal num2 = new BigDecimal(20); BigDecimal num3 = new BigDecimal(0); BigDecimal num4 = new BigDecimal(20); //加法 add System.out.println("**********加法运算 add ****************"); num3 = num1.add(num2); System.out.println(num1+"+"+num2+"="+num3); //减法 subtract System.out.println("**********减法运算 subtract****************"); num3 = num1.subtract(num2); System.out.println(num1+"-"+num2+"="+num3); //除法 divide System.out.println("**********除法运算 divide****************"); num3 = num1.divide(num2); System.out.println(num1+"/"+num2+"="+num3); //乘法 System.out.println("**********乘法运算 multiply ****************"); num3 = num1.multiply(num2); System.out.println(num1+"*"+num2+"="+num3); //N次幂 System.out.println("**********N次幂运算 pow****************"); num3 = num1.pow(2); System.out.println(num1+"^"+2+"="+num3); //比较 -1 小于 0 等于 1 大于 System.out.println("**********比较 -1 小于 0 等于 1 大于****************"); int i = num1.compareTo(num2); int j = num4.compareTo(num2); int k = num3.compareTo(num2); System.out.println(num1+"大于"+num2+"====compareTo结果是"+i); System.out.println(num4+"等于"+num2+"====compareTo结果是"+j); System.out.println(num3+"小于"+num2+"====compareTo结果是"+k); System.out.println(num1+"/"+33+num1.divide(new BigDecimal(33),2, BigDecimal.ROUND_HALF_EVEN)+"保留两位小数"); } }
运算结果:
在进行除法运算时很容易出现不整除的现象,不整除就会报出如下错误:
Exception in thread "main" java.lang.ArithmeticException:
出现此错误时:使用BigDecimal.ROUND_HALF_EVEN
System.out.println(num1+"/"+33+num1.divide(new BigDecimal(33),2, BigDecimal.ROUND_HALF_EVEN)+"保留两位小数");
为不整除的书保留两位小数显示