Java中对大数的操作

1.整型大数类(BigInteger):


//构造:BigInteger(String val) 将 BigInteger的十进制字符串表示形式转换为 BigInteger
//对象.toString(int radix) 返回此 BigInteger 的给定基数的字符串表示形式
//对象.pow(int exponent) 返回其值为 (thisexponent) 的 BigInteger 
//除此还有max,min,mod,gcd最大公约数,add,subtract,mutiply,divide等
import java.math.BigInteger;
//BigInteger类
public class BigIntegerDemo {
	
	public static void main(String[] args) {
		BigInteger bi1 = new BigInteger("987654321");//构造方法,将字符串转换为BigInteger类
		BigInteger bi2 = new BigInteger("123456789");
		System.out.println("加法:" + bi1.add(bi2));//调用add()方法
		System.out.println("减法:" + bi1.subtract(bi2));
		System.out.println("乘法:" + bi1.multiply(bi2));
		System.out.println("除法:" + bi1.divide(bi2));
		System.out.println("取余:" + bi1.mod(bi2));
		//public BigInteger[] divideAndRemainder(BigInteger val)返回包含 (this / val) 后跟 (this % val) 的两个 BigInteger 的数组
		BigInteger div[] =  bi1.divideAndRemainder(bi2);
		System.out.println("商余除法:商:" + div[0] + ",余:" + div[1]);
		System.out.println("bi1的5次方为:" + bi1.pow(5));
	}
}

1.浮点型大数类(BigDecimal):


//构造:
//BigDecimal(BigInteger val) 将 BigInteger 转换为 BigDecimal。
//BigDecimal(String val) 将 BigDecimal 的字符串表示形式转换为 BigDecimal,还可以int double long
//方法:
//对象.toString()返回此 BigDecimal 的字符串表示形式,如果需要指数,则使用科学记数法
//对象.toPlainString() 返回不带指数字段的此 BigDecimal 的字符串表示形式。
//对象.stripTrailingZeros() 返回数值上等于此小数,但从该表示形式移除所有尾部零的 BigDecimal。
//对象.BigDecimal add(BigDecimal augend) 返回一个 BigDecimal,其值为 (this + augend),其标度(精度)为 max(this.scale(), augend.scale())。 
import java.math.BigDecimal;
public class BigDecimalDemo {

	public static void main(String[] args) {
		BigDecimal bi1 = new BigDecimal(2345.6789);//将double类型转换为BigDecimal类型
		BigDecimal bi2 = new BigDecimal(98765.4321);
		System.out.println("BigDecimal类型转换为double类型:" + bi1.doubleValue());//将BigDecimal类型转换为double类型
		System.out.println("加法:" + bi1.add(bi2).doubleValue());//add()方法返回值类型是BigDecimal类型需要转换为double
		System.out.println("减法:" + bi1.subtract(bi2).doubleValue());
		System.out.println("乘法:" + bi1.multiply(bi2).doubleValue());
		//divide(对象,保留的位数,四舍五入的常量)  除法方法的应用
		System.out.println("BigDecimal.ROUND_HALF_UP=" + BigDecimal.ROUND_HALF_UP);
		System.out.println("除法:" + bi2.divide(bi1,BigDecimal.ROUND_HALF_UP).doubleValue());//未四舍五入
		System.out.println("除法:" + bi2.divide(bi1,3,BigDecimal.ROUND_HALF_UP).doubleValue());//保留三位小数
		
		BigDecimal bi3 = new BigDecimal("12345.6789");//将String类型转换为BigDecimal类型
		BigDecimal bi4 = new BigDecimal("98765.4321111");
		System.out.println("加法:" + bi3.add(bi4).doubleValue());//add()方法返回值类型是BigDecimal类型需要转换为double
		System.out.println("除法:" + bi4.divide(bi3,BigDecimal.ROUND_HALF_UP).toEngineeringString());
		System.out.println("BigDecimal类型转换为EngineeringString类型:" + bi3.toEngineeringString());
		
	}
}


更多构造及方法请点此处查找:http://tool.oschina.net/apidocs/apidoc?api=jdk-zh


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值