一.前言

Double只能处理16位有效数精度,在某些情况下精度对其需求是不够的,所以就有了BigDecimal。因为BigDecimal的精度范围的范围大,所以在问我们的开发业务中对精度要求高的属性,就需要BigDecimal来进行存储计算,防止精度丢失。这里我主要介绍一下BigDecimal的加,减,乘,除。四种基础计算。

二.内容

首先准备两个BigDecimal类型的数

// new第一个参数
BigDecimal num1 = new BigDecimal(20.5555555555);
// new第二个参数
BigDecimal num2 = new BigDecimal(10.5555555554);

精度类 MathContext:

MathContext可以自己定义保留的有效数字位数:

MathContext mathContext = new MathContext(2);

其中2是指有效数字位数。MathContext类还有几个默认参数分别是:

MathContext.UNLIMITED = 不限制精度        采用四舍五入

MathContext.DECIMAL32 = 7位有效数字      采用“最接近的”数字舍入

MathContext.DECIMAL64 = 16位有效数字    采用“最接近的”数字舍入

MathContext.DECIMAL128 = 34位有效数字   采用“最接近的”数字舍入

1.加法

加法可以使用MathContext来确定有效数字位数:

        // BigDecimal的加法 有两种 一种无精度入参  一种有精度入参// 无精度入参 num1减去num2BigDecimal addNum1 = num1.add(num2);// 有精度入参//  MathContext.UNLIMITED = 不限制精度//  MathContext.DECIMAL32 = 7位有效数字//  MathContext.DECIMAL64 = 16位有效数字//  MathContext.DECIMAL128 = 34位有效数字MathContext mathContext = new MathContext(2);BigDecimal addNum2 = num1.add(num2, MathContext.DECIMAL32);

2.减法

减法可以使用MathContext来确定有效数字位数:

        // BigDecimal的减法 有两种 一种无精度入参  一种有精度入参// 无精度入参BigDecimal subNum1 = num1.subtract(num2);// 有精度入参BigDecimal subNum2 = num1.subtract(num2,MathContext.DECIMAL32);

3.乘法

乘法可以使用MathContext来确定有效数字位数

        // BigDecimal的乘法 有两种 一种无精度入参  一种有精度入参// 无精度入参BigDecimal mulNum1 = num1.multiply(num2);// 有精度入参BigDecimal mulNum2 = num1.multiply(num2,MathContext.DECIMAL32);

4.除法

其中除法有很多不同入参的方法,以下举例4种:

        // BigDecimal的除法// 无精度入参BigDecimal divNum1 = num1.divide(num2);// 有精度入参 MathContextBigDecimal divNum2 = num1.divide(num2,MathContext.DECIMAL32);// 有精度入参 RoundingMode  RoundingMode.HALF_UP -> 四舍五入精度BigDecimal divNum3 = num1.divide(num2, RoundingMode.HALF_UP);// 有精度入参 RoundingMode  RoundingMode.HALF_UP -> 四舍五入精度  scale 表示四舍五入到几位小数BigDecimal divNum4 = num1.divide(num2,2, RoundingMode.HALF_UP);

温馨提示:

在使用BigDecimal来进行数据操作时,一定要避免使用的BigDecimal对象为空的情况,否则会抛出NullPointerException空指针异常。为了避免此情况,为空时可以赋值:BigDecimal.ZERO,这个是BigDecimal类自己提供的枚举,剩下的枚举自己去找一下吧~

BigDecimal计算(加减乘除)相关推荐

  1. html输入公式得到混合运算结果,excel表格如何用公式计算加减乘除混合运算-excel乘法如何计算,excel函数怎么计算乘法...

    Excel支持数学中的四则运算,直接在目标单元格写相应的公式即可.例百如求A1减B1的差,在C1单元格可输入:=A1-B1 需注意: Excel里面任何公式(包括数学四则运算)都是需要以等号度开头. ...

  2. 三角函数算式的c语言表达式,能计算加减乘除表达式,求添加计算平方、三角函数的功能,...

    能计算加减乘除表达式,求添加计算平方.三角函数的功能,在线等,急 各位C语言大神,求帮忙,现在代码能计算加减乘除表达式,但是不能计算平方和三角函数,求大神添加功能. 在线等~~~ // EX6_08. ...

  3. 在Word中如何直接计算加减乘除?

    在Word中如何直接计算加减乘除? 目录 在Word中如何直接计算加减乘除? 1.添加计算工具,[文件]-[选项]-[自定义]-[不在功能区的命令]-找到[计算]点击[添加][确定] 2.选中选计算的 ...

  4. 详解BigDecimal及其加减乘除运算

    目录 一.BigDecimal概述 二.构造函数详解 1.BigDecimal(int val) 2.BigDecimal(int val, MathContext mc) MathContext 3 ...

  5. python字符串计算加减乘除代码_Python 70行代码实现简单算式计算器解析

    描述:用户输入一系列算式字符串,程序返回计算结果. 要求:不使用eval.exec函数. 实现思路:找到当前字符串优先级最高的表达式,在算术运算中,()优先级最高,则取出算式最底层的(),再进行加减乘 ...

  6. bigdicmal除法精度设置_java中BigDecimal进行加减乘除的基本用法

    前言 众所周知Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.双精度浮点型变量double可以处理16位有效数.在实际应用中,需要对更大或 ...

  7. BigDecimal 计算余数

    Java计算大数据,使用BigDecimal,它提供了很多方法. 通过BigDecimal取余: // 返回数组中,第一个元素是商,第二个元素是余数 public BigDecimal[] divid ...

  8. 用计算机算加法与乘法应该怎么算,你知道计算机是怎么计算加减乘除算式的么?...

    说到加减乘除运算,只要学过乘法口诀的应该没有不会算的吧. 什么一一得一,一二得二....信手拈来,简直不要太容易. 难一点的无非也就是这四种运算符号组合起来而已,但是如此简单的运算对于计算机而言,真的 ...

  9. Java 实现位运算计算加减乘除

    机器数和机器数的真值 一个数在计算机中的二进制表示形式,叫做这个数的机器数.机器数是带符号的,在计算机用机器数的最高位存放符号,正数为0,负数为1.举个例子,比如在机器字长为8位的情况下(机器字长是指 ...

最新文章

  1. Testing Windows Live Writer 2
  2. 再学 GDI+[83]: TGPImage(3) - 平行四边形变换
  3. Redis数据类型(String)
  4. Linux怎么查看设置系统语言包
  5. Spark SQL(三)之视图与执行SQL
  6. linux中xy是什么命令,Linux命令中chmod 777 以及drwxr-xr-x分别代表什么意思
  7. 【正点原子MP157连载】第四十四章Linux SPI总线框架-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7
  8. 谈谈在深圳挤公交那些事
  9. pdf合并成一个pdf软件下载?pdf合并成一个pdf软件合成器工具
  10. 微信公众号群发接口和原创校验
  11. 浅析:光纤跳线的插入损耗和回波损耗
  12. 【LeetCode】算法初涉
  13. Mysql8.0下载(网盘云盘)
  14. Java程序员如何月薪达到两万,需要技术水平达到什么程度?
  15. Go36-36,37-字符串
  16. 鸿蒙系统,鸿蒙app简易登录界面,界面开发教程
  17. 用python完成选股策略a股_Python 金融: 0亏损选股策略
  18. 超级简单的自动刷新_144Hz刷新率真比60Hz快 谁用谁知道
  19. ATI移动显卡全系列型号及参数一览表
  20. 用HTML里面的表格制作可以下拉的导航栏,excel表格中下拉菜单制作有什么方法

热门文章

  1. 华为交换机配置远程管理地址
  2. macbook 苹果妙控键盘 快捷键
  3. 欧洲穷游儿在加拿大安省的一礼拜
  4. 高级自动化测试5个重要面试题(含金量高,分水岭能pass掉很多人)
  5. ue4简单制作ai走路与寻找角色(不使用控制器,黑板和树,适合蓝图新手入门使用)【下】
  6. 图像处理领域公认的重要英文期刊(SCI收录)(转载)
  7. C/C++变量之整型变量
  8. 图像处理之亮度与对比度
  9. Crawler之Scrapy:Scrapy的简介、安装、使用方法之详细攻略
  10. SOLIDWORKS帮助企业开启MBE大门