Java中大数的相关计算

来源:互联网 发布:阿里巴巴数据采集器 编辑:程序博客网 时间:2024/06/06 12:32
package com.an.math;import java.math.BigDecimal;import java.math.BigInteger;import org.junit.Test;public class TestMath {@Testpublic void testtestBigDecimal(){BigDecimal a = new BigDecimal("2.234567891011121345123456");BigDecimal b = new BigDecimal("1.234567890123456789123456");//小数的加减乘除BigDecimal add = a.add(b);BigDecimal sub = a.subtract(b);BigDecimal mul = a.multiply(b);BigDecimal div = a.divide(b,BigDecimal.ROUND_UP);//向上取整 BigDecimal div1 = a.divide(b,BigDecimal.ROUND_CEILING);//向上取整   BigDecimal div2 = a.divide(b,2,BigDecimal.ROUND_FLOOR);//向下取整,并保留两位小数  System.out.println(add);//3.469135781134578134246912System.out.println(sub);//1.000000000887664556000000System.out.println(mul);//2.758725766543222622485632681538811683126345383936System.out.println(div); //1.810000008009008363097176System.out.println(div1);//1.810000008009008363097176System.out.println(div2); //1.81}@Testpublic void testBigInteger(){BigInteger num1 = new BigInteger("923456789012345678912345");BigInteger num2 = new BigInteger("123456789012345678912345");//整数数的加减乘除BigInteger sum = num1.add(num2);//1046913578024691357824690BigInteger sub = num1.subtract(num2);//800000000000000000000000BigInteger mul = num1.multiply(num2);//114007009963115379883114668108216720022193399025BigInteger divide = num1.divide(num2);//商 7 BigInteger rem = num1.remainder(num2);//余数  //59259265925925926525930BigInteger[] result = num1.divideAndRemainder(num2);System.out.println(sum);System.out.println(sub);System.out.println(mul);System.out.println(divide);//商System.out.println(rem);//余数System.out.println("商:" +result[0] +",余数:" +result[1]);}}

原创粉丝点击