当前位置: 首页 > news >正文

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类

二者共有的常见方法

方法功能
add
subtract
multiply
divide

注意点:传参类型必须是类对象


一、BigInteger

1. 作用:适合保存比较大的整型数

2. 使用说明

3. 代码示例

import java.math.BigInteger;public class main {public static void main(String[] args) {BigInteger bigInteger = new BigInteger("999999999999999999999999");System.out.println(bigInteger);BigInteger bigInteger1= new BigInteger("9");// 加法System.out.println("add:" + bigInteger.add(bigInteger1));// 减法System.out.println("subtract:" + bigInteger.subtract(bigInteger1));// 乘法System.out.println("multiply:" + bigInteger.multiply(bigInteger1));// 除法System.out.println("divide:" + bigInteger.divide(bigInteger1));}
}// 输出结果
999999999999999999999999
add:1000000000000000000000008
subtract:999999999999999999999990
multiply:8999999999999999999999991
divide:111111111111111111111111

二、BigDecimal

1. 作用:适合保存高精度浮点数(小数)

2. 使用说明

3. 注意点

BigDecimal使用除法的时候,会出现除不尽(无限循环小数)的情况,这个时候会抛出异常(ArithmeticException

解决方法

传参时候传入BigDecimal.ROUND_CEILING),这个时候结果的精度就会和分子保持一致

代码示例

import java.math.BigDecimal;public class main {public static void main(String[] args) {BigDecimal bigDecimal = new BigDecimal("99.8888888888889999999");System.out.println(bigDecimal);BigDecimal bigDecimal1= new BigDecimal("7");// 加法System.out.println("add:" + bigDecimal.add(bigDecimal1));// 减法System.out.println("subtract:" + bigDecimal.subtract(bigDecimal1));// 乘法System.out.println("multiply:" + bigDecimal.multiply(bigDecimal1));// 除法System.out.println("divide:" + bigDecimal.divide(bigDecimal1,BigDecimal.ROUND_CEILING));}
}// 输出结果
99.8888888888889999999
add:106.8888888888889999999
subtract:92.8888888888889999999
multiply:699.2222222222229999993
divide:14.2698412698412857143

相关文章:

  • Windows开机自动启动中间件
  • Python应用变量与数据类型
  • Redis : Hash形式
  • Linux68 FTP 测试 上传下载
  • 【PCIe总线】-- inbound、outbound配置
  • LSTM-SVM多变量时序预测(Matlab完整源码和数据)
  • Django知识-视图
  • uni-app学习笔记三十--request网络请求传参
  • uni-app学习笔记二十四--showLoading和showModal的用法
  • 基于Python学习《Head First设计模式》第十章 状态模式
  • Vulkan 3D Tiles渲染器开发笔记1-脚手架搭建
  • 时间序列预测的机器学习方法:从基础到实战
  • 材料力学速通
  • 设置QDialog的setModal(true)对show()无法阻塞
  • Elasticsearch从安装到实战、kibana安装以及自定义IK分词器/集成整合SpringBoot详细的教程ES(三)
  • 从 Kubernetes 学习大规模 Go 项目架构
  • 初级程序员入门指南
  • Psychopy音频的使用
  • (一)单例模式
  • 【Blender】Blender 通过 Python 实现模型大小压缩
  • 黄州做网站的/2021十大网络舆情案例
  • 狮岭做网站/网站性能优化
  • wordpress成品网站yunbuluo/武汉网络推广公司排名
  • 织梦html网站地图/百度点击率排名有效果吗
  • 淮阳住房城乡建设局网站/广西seo
  • 时尚网站网页设计/北京seo优化技术