BIgInteger和BigDecimal

本文介绍了Java中的BigInteger用于表示任意大小整数,处理大整数运算和溢出问题,以及BigDecimal用于表示精确小数,关注精度保持和除法处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 一、BIgInteger

        在Java中,由CPU原生提供的整型最大范围是64位1ong型整数。使用long型整数可以直接通过cPU指令进行计算,速度非常快。如果我们使用的整数范围超过了1og型怎么办?这
个时候,就只能用数据结构来模拟一个大整数。java.math.BigInteger就是用来表示任意大小的整数。BigInteger内部用一个int[]数组来模拟一个非常大的整数:

 BigInteger和Integer、Long一样,也是不可变类,并且也继承自Number类。因为Numbe、下定义了转换为基本类型的几个方法:


1、转换为byte:byteValue()
2、转换为short:shortValue()
3、转换为int:intValue()
4、转换为1onglongValue()
5、转换为f1oat:floatValue()
6、转换为doubledoubleValue()


因此,通过上述方法,可以把BigInteger转换成基本类型。如果BigInteger表示的范围超过了基本类型的范围,转换时将丢失高位信息,即结果不一定是准确的。如果需要准确地转换成基本类型,可以使用intValueExact()、longValueExact()等方法,在转换时如果超出范围,将直接抛
ArithmeticException异常。
BigInteger和1ong型整数运算比,BigInteger不会有范围限制,但缺点是速度比较慢。也可以把BigInteger转换成long型:

 eg1

package com.x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值