Java随笔-大数
2022/1/11 20:06:43
本文主要是介绍Java随笔-大数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
大数
文章目录
- 大数
- 一:整形大数
- 二:浮点型大数
若基本的整形和浮点型精度不够满足需求,那么可以使用java.math包中两个很有用的类:BigInteger和BigDecimal。这两个类可以处理包含任意长度数字序列的数值。BigInteger类实现任意精度的整数运算,BigDecimal实现任意精度的浮点数运算。
一:整形大数
构造方法:
//构造方法一 BigInteger bigInteger = new BigInteger(String str); //构造方法二 BigInteger bigInteger = BigInteger.valueOf(int x);
常用API:
//实现加法运算 BigInteger add(BigInteger other) //减法运算 BigInteger subtract(BigInteger other) //乘法运算 BigInteger multiply(BigInteger other) //除法运算 BigInteger divide(BigInteger other) //取模运算 BigInteger mod(BigInteger other) //与另一个大数相比较,若相等返回0,小返回-1,大返回1 int compareTo(BigInteger other)' //将基本的整形变成整形大数,返回值等于x的大数 static BigInteger valueOf(long x)
代码示例:
public static void main(String[] args) { //整形大数 //构造方法一 BigInteger bigInteger = new BigInteger("1234567890234321"); System.out.println(bigInteger); //构造方法二 BigInteger bigInteger1 = BigInteger.valueOf(100); System.out.println(bigInteger1); //加:1234567890234321+100+100 BigInteger sum = bigInteger.add(bigInteger1).add(BigInteger.valueOf(100)); System.out.println(sum); //减1234567890234321-1234567890234321-100 = -100 BigInteger sub = bigInteger.subtract(bigInteger).subtract(BigInteger.valueOf(100)); System.out.println(sub); //乘 BigInteger mut = bigInteger.multiply(BigInteger.valueOf(0)).add(bigInteger1); System.out.println(mut); //除 BigInteger divide = bigInteger.divide(bigInteger); System.out.println(divide); //取模 BigInteger mod = bigInteger.mod(BigInteger.valueOf(2)); System.out.println(mod); //比较 int i = bigInteger1.compareTo(BigInteger.valueOf(100)); System.out.println(i); int i1 = bigInteger1.compareTo(BigInteger.valueOf(90)); System.out.println(i1); int i2 = bigInteger1.compareTo(BigInteger.valueOf(110)); System.out.println(i2); }
结果:
二:浮点型大数
构造方法:
BigDecimal bigDecimal = new BigDecimal(int x); BigDecimal bigDecimal1 = new BigDecimal(double x); BigDecimal bigDecimal2 = new BigDecimal(String str); BigDecimal bigDecimal3 = new BigDecimal(BigInteger integer);
常用API:
BigDecimal add(BigDecimal other) //减法运算 BigDecimal subtract(BigDecimal other) //乘法运算 BigDecimal multiply(BigDecimal other) //除法运算 //如果商是个寻仙循环的小数时,程序会抛出异常 BigDecimal divide(BigDecimal other) //得到一个舍入的结果,如果是四舍五入,那么第二个参数是RoundingMode.HALF_UP BigDecimal divide(BigDecimal other,RoundingMode mode) //与另一个大数相比较,若相等返回0,小返回-1,大返回1 int compareTo(BigDecimal other)' //将基本的整形变成整形大数,返回值等于x的大数 static BigDecimal valueOf(long x)
代码示例:
//构造方式 BigDecimal bigDecimal = new BigDecimal(1000); BigDecimal bigDecimal1 = new BigDecimal(100.1); BigDecimal bigDecimal2 = new BigDecimal("10002"); BigDecimal bigDecimal3 = new BigDecimal(bigInteger1); System.out.println(bigDecimal); System.out.println(bigDecimal1); System.out.println(bigDecimal2); System.out.println(bigDecimal3); //加 BigDecimal add = bigDecimal.add(bigDecimal1); System.out.println(add); //减 BigDecimal subtract = bigDecimal.subtract(bigDecimal1); System.out.println(subtract); //乘 BigDecimal multiply = bigDecimal.multiply(BigDecimal.valueOf(2)); System.out.println(multiply); //除 // BigDecimal divide1 = bigDecimal.divide(BigDecimal.valueOf(3));//结果是一个无限循环的小数,这种方法会报错 BigDecimal divide2 = bigDecimal.divide(BigDecimal.valueOf(3), RoundingMode.UP);//对于无限循环的小数进行四舍五入 // System.out.println(divide1); System.out.println(divide2); //比较 int i3 = bigDecimal.compareTo(BigDecimal.valueOf(1000)); int i4 = bigDecimal.compareTo(BigDecimal.valueOf(1)); int i5 = bigDecimal.compareTo(BigDecimal.valueOf(1000000)); System.out.println(i3); System.out.println(i4); System.out.println(i5);
结果:
这篇关于Java随笔-大数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-10百万架构师第十三课:源码分析:Spring 源码分析:Spring核心IOC容器及依赖注入原理|JavaGuide
- 2025-01-10便捷好用的电商API工具合集
- 2025-01-09必试!帮 J 人团队解决物流错发漏发的软件神器!
- 2025-01-09不容小觑!助力 J 人物流客服安抚情绪的软件!
- 2025-01-09为什么医疗团队协作离不开智能文档工具?
- 2025-01-09惊叹:J 人团队用啥软件让物流服务快又准?
- 2025-01-09如何利用数据分析工具优化项目资源分配?4种工具推荐
- 2025-01-09多学科协作难?这款文档工具可以帮你省心省力
- 2025-01-09团队中的技术项目经理TPM:工作内容与资源优化策略
- 2025-01-09JIT生产管理法:优化流程,提升竞争力的秘诀