Java大数类BigInteger、BigDecimal的使用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java大数类BigInteger、BigDecimal的使用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4373字,纯文字阅读大概需要7分钟。
内容图文
![Java大数类BigInteger、BigDecimal的使用](/upload/InfoBanner/zyjiaocheng/606/18251f9dd64d44d699121f73e390ccb0.jpg)
Java中提供了两个大数类:BigInteger
和BigDecimal
,一个是表示整数,一个表示浮点数的。理论上只要内存够,表示的数就能无限大
BigInteger
获取BigInteger对象
获取BigInteger对象可以通过构造函数或者提供的静态方法。
传入一个只包含数字的字符串。第二个参数为进制,不填的话默认为10进制。
BigInteger num1 = new BigInteger("123456");
BigInteger num2 = new BigInteger("1001",2);
使用valueOf()
方法传入一个long类型的数
BigInteger num3 = BigInteger.valueOf(3l);
BigInteger常用的方法
import java.math.BigInteger;
public class Main{
public static void main(String[] args) {
BigInteger one = BigInteger.ONE;
BigInteger zero = BigInteger.ZERO;
BigInteger ten = BigInteger.TEN;
BigInteger two = BigInteger.valueOf(2l);
BigInteger seven = BigInteger.valueOf(7l);
BigInteger num1 = new BigInteger("123456");
BigInteger num2 = new BigInteger("10101", 2);
System.out.println(num1);
System.out.println(num2);
BigInteger num3 = BigInteger.valueOf(3l);
System.out.println(num3);
// 大数的加减乘除取模运算,参数都是一个BigInteger对象,运行结果返回一个BigInteger对象
System.out.println("num1.add(num2) = " + num1.add(num2));
System.out.println("num1.subtract(num2) = " + num1.subtract(num2));
System.out.println("num1.multiply(num3) = " + num1.multiply(num3));
System.out.println("num1.divide(num2) = " + num1.divide(num2));
System.out.println("num1.mod(num2) = " + num1.mod(num2));
// 相当于求 x^n 参数类型是int
System.out.println("num1.pow(2) = " + num1.pow(2));
// x^n % m
System.out.println("num1.modPow(two,two) = " + num1.modPow(two, two));
// (1/x)%m
System.out.println("seven.modInverse(BigInteger.valueOf(20)) = " + seven.modInverse(BigInteger.valueOf(20)));
// 返回最大值或者最小值
System.out.println("num1.max(two) = " + num1.max(two));
System.out.println("num1.min(two) = " + num1.min(two));
// 比较大小
System.out.println("num1.compareTo(num2) = " + num1.compareTo(num2));
// 绝对值
System.out.println("num1.abs() = " + num1.abs());
// 求gcd
System.out.println("num1.gcd(num2) = " + num1.gcd(num2));
// 参数 certainty - 这一措施的调用者能容忍的不确定性:如果调用返回true,则此BigInteger是素数超过概率(1 - 1/2确定性)。此方法的执行时间正比于该参数的值。
System.out.println("num1.isProbablePrime(10) = " + num1.isProbablePrime(1));
// 下面四个是位运算
System.out.println("num1.andNot(num2) = " + num1.andNot(num2));
System.out.println("num1.and(num2) = " + num1.and(num2));
System.out.println("num1.or(num2) = " + num1.or(num2));
System.out.println("num1.xor(num2) = " + num1.xor(num2));
//转成字符串, 可传入一个参数,转成对应进制的字符串
System.out.println("num1.toString() = " + num1.toString());
System.out.println("num1.toString(2) = " + num1.toString(2));
}
}
BigDecimal
获取BigDecimal对象
获取和方法和BigInteger大体类似
BigDecimal one = BigDecimal.ONE ;
BigDecimal zero = BigDecimal.ZERO ;
BigDecimal ten = BigDecimal.TEN;
BigInteger bigInteger = BigInteger.ONE;
BigDecimal num1 = new BigDecimal(bigInteger );
BigDecimal num2 = new BigDecimal(10);
BigDecimal num3 = new BigDecimal(30.12);
BigDecimal num4 = new BigDecimal("123456");
BigDecimal num5= new BigDecimal(100l);
BigDecimal num6 = BigDecimal.valueOf(10l);
BigDecimal num7= BigDecimal.valueOf(123);
BigDecimal常用的方法
import java.math.BigDecimal;
import java.math.BigInteger;
public class Main {
public static void main(String[] args) {
BigDecimal one = BigDecimal.ONE ;
BigDecimal zero = BigDecimal.ZERO ;
BigDecimal ten = BigDecimal.TEN;
BigInteger bigInteger = BigInteger.ONE;
BigDecimal num1 = new BigDecimal(bigInteger );
BigDecimal num2 = new BigDecimal(10);
BigDecimal num3 = new BigDecimal(30.12);
BigDecimal num4 = new BigDecimal("123456");
BigDecimal num5= new BigDecimal(100l);
BigDecimal num6 = BigDecimal.valueOf(10l);
BigDecimal num7= BigDecimal.valueOf(123);
BigDecimal num = BigDecimal.valueOf(123441l);
// 四则运算
System.out.println("num.add(num1) = " + num.add(num1));
System.out.println("num.subtract(num2) = " + num.subtract(num2));
System.out.println("num.divide(num3) = " + num.divide(num3));
System.out.println("num.multiply(num1) = " + num.multiply(num1));
// 幂运算
System.out.println("num1.pow(10) = " + num1.pow(10));
System.out.println("num.abs() = " + num.abs());
System.out.println("num.min(num4) = " + num.min(num4));
System.out.println("num.max(num5) = " + num.max(num5));
System.out.println("num.compareTo(num7) = " + num.compareTo(num7));
System.out.println("num1.toBigInteger() = " + num1.toBigInteger());
System.out.println("num.toString() = " + num.toString());
}
}
内容总结
以上是互联网集市为您收集整理的Java大数类BigInteger、BigDecimal的使用全部内容,希望文章能够帮你解决Java大数类BigInteger、BigDecimal的使用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。