大数字运算( BigInteger 、 BigDecimal)
package com.lei.duixiang;import java.math.BigDecimal;import java.math.BigInteger;public class BigNum {/** * 大数字运算( BigInteger 、 BigDecimal) * 区别:BigDecimal 加入了小数的概念,它支持任何精度的定点数 * @param args */// 大数字运算( BigInteger )public static void BigIntegerDemo(){BigInteger bigInteger = new BigInteger("4"); //实例化 一个大数字//取该大数字加 2 的运算System.out.println("加法操作:"+bigInteger.add(new BigInteger("2")));//取该大数字减 2 的运算System.out.println("减法操作:"+bigInteger.subtract(new BigInteger("2")));//取该大数字乘 2 的运算System.out.println("乘法操作:"+bigInteger.multiply(new BigInteger("2")));//取该大数字除 2 的运算System.out.println("除法操作:"+bigInteger.divide(new BigInteger("2")));//取该大数字除 3 的商System.out.println("取商:"+bigInteger.divideAndRemainder(new BigInteger("3"))[0]);//取该大数字除 3 的余数System.out.println("取商:"+bigInteger.divideAndRemainder(new BigInteger("3"))[1]);//取该大数字的 2 次方System.out.println("做2 次方操作:"+bigInteger.pow(2));//取该大数字的相反数System.out.println("取相反数操作:"+bigInteger.negate());}// 大数字运算( BigDecimal )static final int location = 10;/** * 定义加法方法,参数为加数与被加数 * @param args */public BigDecimal add(double d1,double d2){// 加法//实例化Decimal对象BigDecimal b1 = new BigDecimal(Double.toString(d1));BigDecimal b2 = new BigDecimal(Double.toString(d2));retu b1.add(b2);//调用 加法 方法}public BigDecimal sub(double d1,double d2){// 减法//实例化Decimal对象BigDecimal b1 = new BigDecimal(Double.toString(d1));BigDecimal b2 = new BigDecimal(Double.toString(d2));retu b1.subtract(b2);//调用 减法 方法}public BigDecimal mul(double d1,double d2){// 乘法//实例化Decimal对象BigDecimal b1 = new BigDecimal(Double.toString(d1));BigDecimal b2 = new BigDecimal(Double.toString(d2));retu b1.multiply(b2);//调用 乘法 方法}public BigDecimal div(double d1,double d2){// 除法retu div(d1,d2,location);//调用 自定义除法 方法}//定义出发方法,参数分别为除数与被除数以及商小数点后的位数public BigDecimal div(double d1,double d2,int b){if(b < 0){System.out.println(" b 值必须大于等于 0");}BigDecimal b1 = new BigDecimal(Double.toString(d1));BigDecimal b2 = new BigDecimal(Double.toString(d2));//调用除法方法,商小数点后保留 b位,并将结果进行四舍五入操作retu b1.divide(b2, b, BigDecimal.ROUND_HALF_UP);}// 除法public static void main(String[] args) {// 大数字运算( BigInteger )BigIntegerDemo();System.out.println("--------------------");BigNum b = new BigNum();System.out.println("两个数字相加结果:"+b.add(-7.5, 8.9));System.out.println("两个数字相减结果:"+b.sub(-7.5, 8.9));System.out.println("两个数字相乘结果:"+b.mul(-7.5, 8.9));System.out.println("两个数字相除结果,结果小数后保留 10 位:"+b.div(10, 2));System.out.println("两个数字相除,保留小数后5 位:"+b.div(-7.5, 8.9,5));}}
作者:小菜希
来源链接:https://www.cnblogs.com/spadd/p/4170036.html
版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。
2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。