博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
大数字运算( BigInteger 、 BigDecimal)
阅读量:5927 次
发布时间:2019-06-19

本文共 3099 字,大约阅读时间需要 10 分钟。

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));                return 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));                return 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));                return b1.multiply(b2);    //调用 乘法 方法    }        public BigDecimal div(double d1,double d2){        // 除法                return 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位,并将结果进行四舍五入操作        return 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

你可能感兴趣的文章
SQL Server代理(3/12):代理警报和操作员
查看>>
基于事件驱动的DDD领域驱动设计框架分享(附源代码)
查看>>
Linux备份ifcfg-eth0文件导致的网络故障问题
查看>>
2018年尾总结——稳中成长
查看>>
SCRT-SSH传输文件
查看>>
行列式的乘法定理
查看>>
linux下内存释放问题
查看>>
让Java和JavaScript进行交互
查看>>
LINQ之路12:LINQ Operators之数据转换(Projecting)
查看>>
SQL Server:数据库角色
查看>>
分享8个超棒的基于HTML5和jQuery的开发教程
查看>>
JFreeChart开发_用JFreeChart增强JSP报表的用户体验
查看>>
SpringMVC+Swagger详细整合
查看>>
计算机视觉领域最全汇总(第2部分)
查看>>
[译] 所有你需要知道的关于完全理解 Node.js 事件循环及其度量
查看>>
(六十九)复合语句
查看>>
我的友情链接
查看>>
设计模式:装饰者
查看>>
Java Web中实现Servlet的方式
查看>>
第三方库之 - SVProgressHUD
查看>>