Java Big Number操作BigInteger及BigDecimal类详解
什么是Java Big Number?
在Java中数据类型是有限的,例如int、long等,这些数据类型能够表示的数字范围是有限的。但是在实际应用中,有时候需要进行精确计算,需要使用更大范围的数据类型来描述整数和小数,这时就需要用到Java Big Number。
Java Big Number是指在Java中可以表示任意大小的整数和浮点数的数据类型,它由两个类组成:BigInteger和BigDecimal。
BigInteger类
BigInteger类是Java中用于表示任意大小整数的类,其内部采用一个数组来存储大整数。以下是一些常用的方法:
-
创建BigInteger对象
BigInteger num1 = BigInteger.valueOf(100); //创建一个值为100的BigInteger对象
BigInteger num2 = new BigInteger("12345678901234567890"); //使用字符串创建一个BigInteger对象 -
BigInteger四则运算
BigInteger num1 = BigInteger.valueOf(100);
BigInteger num2 = BigInteger.valueOf(200);
BigInteger sum = num1.add(num2); //加法运算,sum的值为300
BigInteger diff = num1.subtract(num2); //减法运算,diff的值为-100
BigInteger product = num1.multiply(num2); //乘法运算,product的值为20000
BigInteger quotient = num2.divide(num1); //除法运算,quotient的值为2
BigInteger remainder = num2.remainder(num1); //取模运算,remainder的值为0 -
BigInteger比较
BigInteger num1 = BigInteger.valueOf(100);
BigInteger num2 = BigInteger.valueOf(200);
int cmp = num1.compareTo(num2); //比较num1和num2的大小,返回-1、0或1
boolean isEqual = num1.equals(num2); //判断num1和num2是否相等,返回false
BigDecimal类
BigDecimal类是Java中用于表示任意大小浮点数的类,其内部采用一个BigInteger和一个int变量来存储大浮点数。以下是一些常用的方法:
-
创建BigDecimal对象
BigDecimal num1 = BigDecimal.valueOf(3.14); //创建一个值为3.14的BigDecimal对象
BigDecimal num2 = new BigDecimal("123456789.0123456789"); //使用字符串创建一个BigDecimal对象 -
BigDecimal四则运算
BigDecimal num1 = BigDecimal.valueOf(3.14);
BigDecimal num2 = BigDecimal.valueOf(1.23);
BigDecimal sum = num1.add(num2); //加法运算,sum的值为4.37
BigDecimal diff = num1.subtract(num2); //减法运算,diff的值为1.91
BigDecimal product = num1.multiply(num2); //乘法运算,product的值为3.8642
BigDecimal quotient = num1.divide(num2, 2, BigDecimal.ROUND_HALF_UP); //除法运算,quotient的值为2.55 -
BigDecimal比较
BigDecimal num1 = BigDecimal.valueOf(3.14);
BigDecimal num2 = BigDecimal.valueOf(1.23);
int cmp = num1.compareTo(num2); //比较num1和num2的大小,返回1
boolean isEqual = num1.equals(num2); //判断num1和num2是否相等,返回false
示例说明
BigInteger示例
下面的示例演示了如何使用BigInteger类进行大整数运算:
import java.math.BigInteger;
public class BigIntegerExample {
public static void main(String[] args) {
BigInteger num1 = BigInteger.valueOf(314159265358979);
BigInteger num2 = BigInteger.valueOf(271828182845904);
BigInteger sum = num1.add(num2);
System.out.println("Sum: " + sum);
BigInteger product = num1.multiply(num2);
System.out.println("Product: " + product);
}
}
输出结果为:
Sum: 585987448204883
Product: 85397342226754904585411946061661630176
BigDecimal示例
下面的示例演示了如何使用BigDecimal类进行大浮点数运算:
import java.math.BigDecimal;
public class BigDecimalExample {
public static void main(String[] args) {
BigDecimal num1 = BigDecimal.valueOf(3.14159265);
BigDecimal num2 = BigDecimal.valueOf(2.71828183);
BigDecimal sum = num1.add(num2);
System.out.println("Sum: " + sum);
BigDecimal quotient = num1.divide(num2, 5, BigDecimal.ROUND_HALF_UP);
System.out.println("Quotient: " + quotient);
}
}
输出结果为:
Sum: 5.85987448
Quotient: 1.15572
以上就是Java Big Number操作BigInteger及BigDecimal类的详细攻略,希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java Big Number操作BigInteger及BigDecimal类详解 - Python技术站