Java BigInteger与BigDecimal的学习

BigInteger

BigInteger不是Java中的基本数据类型,它与String类似,是一个类。
当某个整数已经超过long型整数的范围时,我们就可以把这个数封装成BigInteger对象。另外,由于其不是基本数据类型,所以很明显不能使用+ - * /来进行运算,取而代之的则是add()、subtract()、mutiply()、divide()四种方法。

构造方法
BigInteger提供多种构造器,其中最为常用的应该就是BigInteger(String val)这种,将BigInteger的十进制字符串转换为BigInteger。

BigInteger b1 = new BigInteger("22222222333333333300000");
BigInteger b2 = new BigInteger("11111111222222222211111");
BigInteger b3 = new BigInteger("-1111111111111111111111111111");
BigInteger result = new BigInteger("0");

常用方法–加减乘除

result = b1.add(b2);//加
result = b1.subtract(b2);//减
result = b1.multiply(b2);//乘
result = b1.divide(b2);//除

其余常见方法

double d = b1.doubleValue();//转换为大整数的double类型的值
float f = b1.floatValue();//转换为大整数的float类型的值
		
result = b1.max(b2);//返回最大值
result = b1.min(b2);//返回最小值
result = b1.negate();//取相反数
result = b3.abs();//取绝对值
result = b1.pow(2);//取大整数的2次方
		
String str = b1.toString();//转换为字符串

BigDecimal

BigInteger是为了表示那些无法用long表示的整数,而当我们的日常的计算中,偶尔会见到无法用float/double表示更大的精度的情况,这个时候就可以使用BigDecimal
构造方法

BigDecimal b1 = new BigDecimal("0.001");

BigDecimal类的加减乘除与BigInteger一样,也是add()、subtract()、mutiply()、divide()四种方法。
比较大小

BigDecimal比较大小使用的compareTo()方法

BigDecimal b1 = new BigDecimal("0.001");
BigDecimal b2 = new BigDecimal("0.002");
		
if(b1.compareTo(b2) == -1)
	System.out.println("b1小于b2");
if(b1.compareTo(b2) == 0)
	System.out.println("b1等于b2");
if(b1.compareTo(b2) == 1)
	System.out.println("b1大于b2");

位数的保留
最常见的舍入模式就是四舍五入了

BigDecimal b3 = new BigDecimal("0.0024").setScale(3,BigDecimal.ROUND_HALF_UP);//四舍五入保留3位小数

另外还有BigDecimal.ROUND_UP(向上取整)、BigDecimal.ROUND_DOWN(向下取整)等舍入模式

小白一枚,如果有错还请指出,本人学习Java网站how2Java

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值