BigInteger类,BigDecimal类

BigInteger类

BigInteger类的数字范围比Integer类的数字范围要大很多,一般用此方法处理更大的数字,且此类支持任意精度的整数

BigInteger b = new BigInteger("num");
//num指代数字
//注:数字的引号必须有 

? 常用方法

方法 功能
public BigInteger add(BigInteger val) 做加法运算
public BigInteger subtract(BigInteger val) 做减法运算
public BigInteger multiply(BigInteger val) 做乘法运算
public BigInteger divide(BigInteger val) 做除法运算
public BigInteger remainder(BigInteger val) 做取余操作
public BigInteger[] divideAndRemainder(BigInteger val) 用数组返回余数和商,结果数组中第一个值为商,第二个值为余数
public BigInteger pow(int exponent) 进行取参数的exponent次方操作
public BigInteger negate() 取相反数
public BigInteger shiftLeft(int n) 将数字左移n位,若n为负数,则右移
public BigInteger shiftRight(int n) 将数字右移n位,若n为负数,则左移
public BigInteger and(BigInteger val) 做与操作
public BigInteger or(BigInteger val) 做或操作
public BigInteger comperTo(BigInteger val) 做数字比较操作
public BigInteger equals(Object x) 当参数x是BigInteger类型的数字并且数值与对象实例的数值相等时,返回true
public BigInteger min(BigInteger val) 返回较小的数值
public BigInteger max(BigInteger val) 返回较大的数值

示例如下

import java.math.BigInteger;

BigInteger b1 = new BigInteger("974562221548996532856");
BigInteger b2 = new BigInteger("8654865555555345");
System.out.println("加法操作:"+b1.add(b2));
System.out.println("减法操作:"+b1.subtract(b2));
System.out.println("乘法操作:"+b1.multiply(b2));
System.out.println("除法操作:"+b1.divide(b2));
System.out.println("取商:"+b1.divideAndRemainder(b2)[0]);
System.out.println("取余数:"+b1.divideAndRemainder(b2)[1]);
System.out.println("取二次方操作:"+b1.pow(2));
System.out.println("取相反数操作:"+b1.negate());

BigDecimal类

与BigInteger类不同的是,此方法加入了小数的概念。

常用构造化方法

BigDecimal(double val):实例化时将双精度浮点型转化为BigDecimal类型

BigDecimal(String val):实例化时将字符串形式转化为BigDecimal类型

? 常用方法

方法 功能
add()
subtract()
multiply(BigDecimal mu)
divide() 除 ()中包含3个参数,分别表示除数,商的小数点后的位数,近似处理模式

? divide()的多种处理模式

模式 含义
RoundingMode.UP 商的最后一位如果大于0,则向前进位,正负数都如此
RoundingMode.DOWN 商的最后一位无论是什么数字都省略
RoundingMode.CEILNG 商如果是正数,按照UP模式处理;若是负数,按照DOWN模式处理。这种模式处理都会是近似值待遇大于等于实际值
RoundingMode.FLOOR 与CEILNG相反,商如果是正数,按照DOWN模式处理;若是负数,按照UP模式处理。这种模式处理都会是近似值待遇小于等于实际值
RoundingMode.HALF_DOWN 对商进行四舍五入操作,小于等于5,舍;相反,进。如7.5≈7
RoundingMode.HALF_UP 对商进行四舍五入操作,小于5,舍;相反,进。如7.5≈8
RoundingMode.HALF_EVEN 若商倒数第二位为奇数,则按照HALF_UP模式处理;为偶数,按照HALF_DOWN模式处理。如7.5≈8;8.5≈8

BigInteger类,BigDecimal类

上一篇:作为程序员,如何准确的评估工期


下一篇:安装node,淘宝镜像cnpm及切换