Java常用API 超大型整数 超大型浮点数
import java.math.BigInteger; BigInteger a = new BigInteger("893847367237384949488326178");//类的构造方法 因参数选用String类型 可使数的范围不受限制 BigInteger b = new BigInteger("65398714322036257495684264"); //四则运算 运算结果也是BigInteger类型的对象 BigInteger r1 = a.add(b);//加法 BigInteger r2 = a.subtract(b);//减法 BigInteger r3 = a.multiply(b);//乘法 BigInteger r4 = a.divide(b);//除法 System.out.println(r1); System.out.println(r2); System.out.println(r3); System.out.println(r4);
//浮点数不精确
//超大型浮点数,提供高精度的运算
import java.math.BigDecimal; //加法add System.out.println(0.09 + 0.01);//0.09999999999999999 BigDecimal a1 = new BigDecimal("0.09"); BigDecimal b1 = new BigDecimal("0.01"); BigDecimal c1 = a1.add(b1); System.out.println(c1); //减法subtract System.out.println(1.0 - 0.32);//0.6799999999999999 BigDecimal a2 = new BigDecimal("1.0"); BigDecimal b2 = new BigDecimal("0.32"); BigDecimal c2 = a2.subtract(b2); System.out.println(c2); //乘法multiply System.out.println(1.015 * 100);//101.49999999999999 BigDecimal a3 = new BigDecimal("1.015"); BigDecimal b3 = new BigDecimal("100"); BigDecimal c3 = a3.multiply(b3); System.out.println(c3); //除法divide System.out.println(1.301 / 100);//0.013009999999999999 BigDecimal a4 = new BigDecimal("1.301"); BigDecimal b4 = new BigDecimal("100");//可以被100除尽 BigDecimal c4 = a4.divide(b4); System.out.println(c4);//0.01301 BigDecimal a5 = new BigDecimal("1.301"); BigDecimal b5 = new BigDecimal("101");//无法被101除 无法除尽 将得到无限循环小数 Non-terminating decimal BigDecimal c5 = a5.divide(b5, 2, BigDecimal.ROUND_HALF_DOWN);// 参数scale-保留几位小数 参数roundingMode-保留模式 System.out.println(c5);//0.01 /*保留模式 BigDecimal.ROUND_UP 向前加1进位 BigDecimal.ROUND_DOWN 直接舍去 BigDecimal.ROUND_HALF_UP 若>=5 则向前加1进位 否则舍去 1.500/100 = 0.02 BigDecimal.ROUND_HALF_DOWN 若>5 则向前加1进位 否则舍去 1.500/100 = 0.01 */

浙公网安备 33010602011771号