BigInteger和BigDecimal
我们知道,基本数据类型所能保存的数据大小和精度是有范围的,那么在处理一些很大或很高精度的数据时就不能使用了
所以java提供了两个类,来处理很大的数据--------BigInteger和BigDecimal
用这两个个类来处理很大的数据时,加减乘除都不能直接操作,必须调用这两个类的方法,以下分别是两个类的例子
public static void main(String[] args) { BigInteger bigInteger = new BigInteger("9999999999999999999999999"); BigInteger bigInteger1 = new BigInteger("9999999999999999999999999"); BigInteger bigInteger2 = bigInteger.add(bigInteger1); System.out.println(bigInteger2); } 运行结果 19999999999999999999999998
public static void main(String[] args) { BigDecimal bigDecimal = new BigDecimal("1.222222222222222222222222"); BigDecimal bigDecimal1 = new BigDecimal("3"); BigDecimal divide = bigDecimal.divide(bigDecimal1); System.out.println(divide); } 运行结果 //抛出了算术异常 //正确使用如下 public static void main(String[] args) { //BigDecimal必须传精度进去,不然遇到除不尽的时候就会抛出算术异常 BigDecimal bigDecimal = new BigDecimal("1.222222222222222222222222"); BigDecimal bigDecimal1 = new BigDecimal("3"); BigDecimal divide = bigDecimal.divide(bigDecimal1,BigDecimal.ROUND_CEILING);
//BigDecimal.ROUND_CEILING)就是一种精度模式,具体去看源码 System.out.println(divide); } 运行结果 0.407407407407407407407408
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!