BigInteger类
在Java当中,是有许多数字要进行处理的类,比如Integer类,但是Integer类它也是有上限的。它的最大值就是到2^31-1.
如果我们此时想要表示更大的数,那就用Integer是无法表示的了,所在在Java当中提供了BigInteger类。
BigInteger类支持的数字可以说是无限大的,且支持任意精度的整数,也就是说他可以准确的表示任意数值而不会产生丢失的。
在这里也强调一下,因为传入的数型是字符型,所以在做运算的时候,不能使用 + - * /
对应的就是使用它们的方法:
add(),subtract(),multiply(),divide()
还有一些常用方法:
equals方法。进行比较
代码演示一下:
import java.math.BigInteger; public class Demo01 { public static void main(String[] args) { BigInteger bigInteger1 = new BigInteger("2222222222222222222222222222222"); BigInteger bigInteger2 = new BigInteger("1111111111111111111111111111111"); System.out.println("bigInteger1大数为:" + bigInteger1); System.out.println("bigInteger2大数为:" + bigInteger2); System.out.println("两个大数相加:" + bigInteger1.add(bigInteger2));//加 System.out.println("两个大数相减:" + bigInteger1.subtract(bigInteger2));//减 System.out.println("两个大数相乘:" + bigInteger1.multiply(bigInteger2));//乘 System.out.println("两个大数相除:" + bigInteger1.divide(bigInteger2));//除 System.out.println("两个大数相比:" + bigInteger1.equals(bigInteger2));//equals进行比较 } }
在做除法的时候,如果有小数位,是这接截取掉小数位。
当然这方面不仅仅有有整型的,也有浮点型。
BigDecimal类
当然浮点型的精度也是可以尽可能大的。
import java.math.BigDecimal; public class Demo02 { public static void main(String[] args) { BigDecimal bigDecimal1 = new BigDecimal("12232423432432.53241234324"); BigDecimal bigDecimal2 = new BigDecimal("2.0"); System.out.println("bigDecimal1值: " + bigDecimal1); System.out.println("bigDecimal2值: " + bigDecimal2); System.out.println("加:" + bigDecimal1.add(bigDecimal2)); System.out.println("减:" + bigDecimal1.subtract(bigDecimal2)); System.out.println("乘:" + bigDecimal1.multiply(bigDecimal2)); System.out.println("除:" + bigDecimal1.divide(bigDecimal2)); } }
在BigDecimal的方法里面,也更好的解决java语言里面的精度问题(比如出现0.1x3 == 0.3的结果为false的问题)
BigDecimal类当中除法除不尽问题
但是在使用BigDecimal的时候也有一个点需要注意一下(当遇到不能除净的话,它会选择报错的。)
所以在做除法的时候,直接给它做一个截取位数就好。
先来看一个方法:
public BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
divisor - 除数。
scale - 小数点后保留几位
roundingMode - 选择舍入模式
所以我们就可以将它写成这样:
舍入模式选择:
模式 | 意思 |
---|---|
ROUND_CEILING | 向正无穷取数 |
ROUND_DOWN | 向0取数 |
ROUND_FLOOR | 向负无穷取数 |
ROUND_HALF_DOWN | 四舍五入遇到 .5向下取数 |
ROUND_HALF_UP | 四舍五入遇到 .5向上取数 |
ROUND_HALF_EVEN | 四舍五入遇到5看前面的数,大于5向上,小于5向下,等于5再向前看。 |
以上是Java的大数型BigInteger与BigDecimal类实例分析的详细内容。更多信息请关注PHP中文网其他相关文章!

本文讨论了使用Maven和Gradle进行Java项目管理,构建自动化和依赖性解决方案,以比较其方法和优化策略。

本文使用Maven和Gradle之类的工具讨论了具有适当的版本控制和依赖关系管理的自定义Java库(JAR文件)的创建和使用。

本文讨论了使用咖啡因和Guava缓存在Java中实施多层缓存以提高应用程序性能。它涵盖设置,集成和绩效优势,以及配置和驱逐政策管理最佳PRA

本文讨论了使用JPA进行对象相关映射,并具有高级功能,例如缓存和懒惰加载。它涵盖了设置,实体映射和优化性能的最佳实践,同时突出潜在的陷阱。[159个字符]

Java的类上载涉及使用带有引导,扩展程序和应用程序类负载器的分层系统加载,链接和初始化类。父代授权模型确保首先加载核心类别,从而影响自定义类LOA


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

Dreamweaver Mac版
视觉化网页开发工具

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3汉化版
中文版,非常好用