BigInteger类
可以让超过Integer范围内的数据进行运算 不可变的任意精度的整数。
java.lang.Object
——java.lang.Number
——————java.math.BigInteger
public BigInteger(String val) 将 BigInteger 的十进制字符串表示形式转换为 BigInteger。 该字符串表示形式包括一个可选的减号,后跟一个或多个十进制数字序列。 字符到数字的映射由 Character.digit 提供。该字符串不能包含任何其他字符(例如,空格)。 参数: val - BigInteger 的十进制字符串表示形式。
public BigInteger add(BigInteger val) 返回其值为 (this + val) 的 BigInteger。 参数: val - 将添加到此 BigInteger 中的值。 返回: this + val
public BigInteger subtract(BigInteger val) 返回其值为 (this - val) 的 BigInteger。 参数: val - 从此 BigInteger 中减去的值。 返回: this - val
public BigInteger multiply(BigInteger val) 返回其值为 (this * val) 的 BigInteger。 参数: val - 要乘以此 BigInteger 的值。 返回: this * val
public BigInteger divide(BigInteger val) 返回其值为 (this / val) 的 BigInteger。 参数: val - 此 BigInteger 要除以的值。 返回: this / val
public BigInteger[] divideAndRemainder(BigInteger val) 返回包含 (this / val) 后跟 (this % val) 的两个 BigInteger 的数组。 参数: val - 此 BigInteger 要除以的值和计算所得的余数。 返回: 两个 BigInteger 的数组:商 (this / val) 是初始元素,余数 (this % val) 是最终元素。
public class f {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
BigInteger bi1 = new BigInteger("100");
BigInteger bi2 = new BigInteger("2");
BigInteger[] arr = bi1.divideAndRemainder(bi2); //取除数和余数
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);//50 0
}
}
}
BigDecimal类
不可变的、任意精度的有符号十进制数 * 由于在运算的时候,float类型和double很容易丢失精度,演示案例。 * 所以,为了能精确的表示、计算浮点数,Java提供了BigDecimal
java.lang.Object
——java.lang.Number
————java.math.BigDecimal
构造 public BigDecimal(BigInteger val) 将 BigInteger 转换为 BigDecimal。BigDecimal 的标度是零。 public BigDecimal(String val) 将 BigDecimal 的字符串表示形式转换为 BigDecimal。
public class g {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(2.0 - 1.1);
BigDecimal bd1 = new BigDecimal(2.0);//这种方式在开发中不推荐,因为不够精确
BigDecimal bd2 = new BigDecimal(1.1);
System.out.println(bd1.subtract(bd2));
BigDecimal bd3 = new BigDecimal("2.0");//通过构造中传入字符串的方式,开发时推荐
BigDecimal bd4 = new BigDecimal("1.1");
System.out.println(bd3.subtract(bd4));
BigDecimal bd5 = BigDecimal.valueOf(2.0);//这种方式在开发中也是推荐的
BigDecimal bd6 = BigDecimal.valueOf(1.1);
System.out.println(bd5.subtract(bd6));
}
}