首页 > 学院 > 开发设计 > 正文

Java从零开始学二十九(大数操作(BigIntger、BigDecimal)

2019-11-14 23:05:13
字体:
来源:转载
供稿:网友
java从零开始学二十九(大数操作(BigIntger、BigDecimal)一、BigInteger

如果在操作的时候一个整型数据已经超过了整数的最大类型长度long的话,则此数据就无法装入,所以,此时要使用BigInteger类进行操作。不可变的任意精度的整数。所有操作中,都以二进制补码形式表示 BigInteger(如 Java 的基本整数类型)。BigInteger 提供所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法。另外,BigInteger 还提供以下运算:模算术、GCD 计算、质数测试、素数生成、位操作以及一些其他操作。
No.方法类型描述
1public BigInteger(String val)构造将一个字符串变为BigInteger类型的数据
2public BigInteger add(BigInteger val)普通加法
3public BigInteger subtract(BigInteger val)普通减法
4public BigInteger multiply(BigInteger val)普通乘法
5public BigInteger divide(BigInteger val)普通除法
6public BigInteger max(BigInteger val)普通返回两个大数字中的最大值
7public BigInteger min(BigInteger val)普通返回两个大数字中的最小值
8public BigInteger[] divideAndRemainder(BigInteger val)普通除法操作,数组的第一个元素为除法的商,第二个元素为除法的余数

二、使用BigInteger操作大整数
package com.pb.demo1;import java.math.BigInteger;public class BigIntegerDemo {    public static void main(String[] args) {        BigInteger bi1=new BigInteger("123456789");        BigInteger bi2=new BigInteger("987654321");        System.out.PRintln("加法操作:" + bi2.add(bi1));    // 加法操作        System.out.println("减法操作:" + bi2.subtract(bi1));    // 减法操作        System.out.println("乘法操作:" + bi2.multiply(bi1));    // 乘法操作        System.out.println("除法操作:" + bi2.divide(bi1));    // 除法操作        System.out.println("最大数:" + bi2.max(bi1));    // 求出最大数        System.out.println("最小数:" + bi2.min(bi1));    // 求出最小数        BigInteger result[] = bi2.divideAndRemainder(bi1) ;    // 除法操作        System.out.println("商是:" + result[0] +                 ";余数是:" + result[1]);     }}

结果:

加法操作:1111111110减法操作:864197532乘法操作:121932631112635269除法操作:8最大数:987654321最小数:123456789商是:8;余数是:9
三、使用BigDecimal指定小数的保留位数对于不需要任何准确计算精度的程序可以直接使用float或double完成,但是如果需要精确计算的结果,则必须使用BigDecimal类。
No.方法类型描述
1public BigDecimal(double val)构造将double表示形式转换为BigDecimal
2public BigDecimal(int val)构造将int表示形式转换为BigDecimal
3public BigDecimal(String val)构造将字符串表示形式转换为BigDecimal
4public BigDecimal add(BigDecimal augend)普通加法
5public BigDecimal subtract(BigDecimal subtrahend)普通减法
6public BigDecimal multiply(BigDecimal multiplicand)普通乘法
7public BigDecimal divide(BigDecimal divisor)普通除法

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表