Java(API)——BigInteger和BigDecimal

BigInteger


1)解释

  1. BigInteger顾名思义大整数
  2. 整数类型:byte,short,int,long
  3. 占用字节数:byte=>1, short=>2, int=>4, long=>8
  4. 1 byte = 8 bit
  5. 所以对于long来说,一共有8*8= 64位,第一位表示符号0为正、1为负,也有上限,所有BigInteger就是解决比long更大的数的

2)BigInteger的构造方法

public BigInteger(int num , Random rnd) //获取随机大整数,[0, (z**num )-1]

//常用构造方法

public BigInteger(String var);

public BigInteger(String var ,int radix )  //var 是String类型,radix如果是二进制,var就只能有0和1

public static BigInteger valueOf(long var)

3)构造方法的实现 

//(1)

//第一种方法

BigInteger bi1 = new BigInteger(4 , new Random() )

//第二种方法

Random  r  = new  Random( );

BigInteger bi1 = new BigInteger(4 , r ) ;

//(2)常用的,要记住

BigInteger bi2 = new BigInteger(“2345672345679876543223457765432”);//只能放整数,不可以放字符串或者小数,否则会报错

//(4)因为valueOf是static静态方法,直接调用方法,不用new

BigInteger bi3 = BigInteger.valueOf(100);

4)小结

  • 如果BigInteger表示的数字没有超出long的范围,可以用静态的方法获取
  • 如果表示的数字超出long的范围,可以用构造方法获取
  • 对象一旦创建,BigInteger内部记录的值不能发生改变

5)常用方法

BigInteger add(BigInteger )//加

BigInteger subtract(BigInteger )//减

BigInteger mutiply(BigInteger )//乘

BigInteger divide(BigInteger )//除,获取商

BigInteger[ ] divideAndRemainder(BigInteger )//获取商和余数,返回数组

boolean equals(Object)//是否相等,比较属性值,不是比较地址值

BigInteger pow(int )//幂

BigInteger max/min(BigInteger )//返回最大值和最小值

int intValue(BigInteger )

BigDecimal


1)解释

  1. 小数运行结果不精确,所以有了BigDecimal
  2. 用于小数的精确计算
  3. 存储很大的小数

 2)构造方法

//构造方法获取BigDecimal对象

public BigDecimal(double val)  //BigDecimal b1 = new BigDecimal( 12.3 )//不精确

public BigDecimal(String val)  //BigDecimal b2 = new BigDecimal( "123.454") //精确

//静态方法获取BigDecimal对象        

public static BigDecimal valueOf(double val) //BigDecimal b3=BigDecimal.valueOf(10)//10.0

  1. 尽量用第二和第三种方法 
  2. 如果要表示的数字不大,没有超出double的范围,建议使用静态方法
  3. 如果表示的数字比较大,超出了double的范围,建议使用构造方法
  4. 如果传递0-10之间的整数,左闭右闭,那么方法会返回已经创建好的对象,不会重新new,即地址值是一样的
  • 21
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值