BigDecimal 由任意精度的整数非标度值 和 32 位的整数标度 (scale) 组成。如果为零或正数,则标度是小数点后的位数。如果为负数,则将该数的非标度值乘以 10 的负 scale 次方。因此,BigDecimal 表示的数值是 (unscaledValue × 10-scale)。

BigDecimal对金额的计算有着很友好的公式,希望能帮助到大家

一:计算,加减乘除

BigDecimal提供了内置的加减乘除函数

  • 加法:add()函数
  • 减法:subtract()函数
  • 乘法:multiply()函数
  • 除法:divide()函数
public static void main(String[] args) {//add 加法//subtract 减法//multiply 乘法//divide 除法BigDecimal B1 = new BigDecimal("9");BigDecimal B2 = new BigDecimal("3");System.out.println("B1+B2="+B1.add(B2));//B1.add(B2)System.out.println("B1-B2="+B1.subtract(B2));//B1.subtract(B2)System.out.println("B1*B2="+B1.multiply(B2));//B1.multiply(B2)System.out.println("B1/B2="+B1.divide(B2,2));//B1.divide(B2) 注:roundingMode(如果B1不能整除B2,roundingMode是精确到小数点几位,这里是精确到小数点后两位)}
输出结果
B1+B2=12
B1-B2=6
B1*B2=27
B1/B2=3

二:比较大小

BigDecimal的compareTo方法可以忽略精度的不同,只比较数值是否相同。

public static void main(String[] args) {BigDecimal B1 = new BigDecimal("9");BigDecimal B2 = new BigDecimal("3");//前提为a、b均不能为nullif(B1.compareTo(B2) == -1){System.out.println("a小于b");}if(B1.compareTo(B2) == 0){System.out.println("a等于b");}if(B1.compareTo(B2) == 1){System.out.println("a大于b");}if(B1.compareTo(B2) > -1){System.out.println("a大于等于b");}if(B1.compareTo(B2) < 1){System.out.println("a小于等于b");}}
输出结果
a大于b
a大于等于b

BigDecimal类型计算和比较大小相关推荐

  1. Java中BigDecimal类型的加减乘除及大小比对

    Java中BigDecimal类型的加减乘除及大小比对 前言 BigDecimal解释 创建BigDecimal类型 加减乘除计算 结果分析 结论 除法的补充 两个BigDecimal的比对 前言 在 ...

  2. java中BigDecimal类型比较大小和绝对值计算

    文章目录 前言 关键方法: 代码测试: 将equals()方法和compareTo()作比较 前言 涉及到BigDecimal类型的比较,最好使用compareTo()方法,不要用equals()方法 ...

  3. Java中使用BigDecimal类型比较大小

    BigDecimal使用心得 BigDecimal使用场景 为什么要用BigDecimal 用BigDecimal的compareTo方法做大小判断 BigDecimal使用场景 BigDecimal ...

  4. java中BigDecimal类型数据大小比较

    一 概述 在Java中会存在数值的比较,在进行金额计算的时候,一般会通过BigDecimal类型的数字进行计算. 二 BigDecimal类型数据大小比较 if(numOne.compareTo(nu ...

  5. java BigDecimal类型 比较大小

    一般我们进行类型比较有.equals().==..compareTo() 但是当比较bigdecimal类型时最好使用.compareTo()来比较大小 BigDecimal a=BigDecimal ...

  6. BigDecimal 类型 比较大小

    目录 1 BigDecimal 类型 比较大小 1 BigDecimal 类型 比较大小 public class QualityUtils {public static void main(Stri ...

  7. java的BigDecimal类型比较大小

    java的BigDecimal类型比较大小 示例如下: /*** 根据数值: 比较超限信息* @param data* @param max* @param min* @return 报警状态: 0表 ...

  8. 字符串转bigdecimal类型_BigDecimal你会用吗?

    点击关注"故里学Java" 右上角"设为星标"好文章不错过 在我们日常工作中数值计算是不可避免的,特别是电商类系统中,这个问题一般情况下我们都是特别注意的,但是 ...

  9. 什么注解可以改变BigDecimal类型的字段返回的小数位数?

    什么注解可以改变BigDecimal类型的字段返回的小数位数?_myme95的博客-CSDN博客 问题背景:我在数据库里有一个字段,是decimal(20,15)类型,但是我在代码里返回数据给前端时, ...

最新文章

  1. C#用DesignSurface实现一个简单的窗体设计器
  2. python 词云_python数据可视化——词云
  3. 真香警告!2021Android高级面试题,挥泪整理面经
  4. vscode 执行npm命令_生产力终极指南:用了两年,如今才算真正会用VS Code
  5. Linux命令Man解释:PPPD(8):点对点daemon协议
  6. 指定复制的数据库或者表
  7. 【转】simulink中的sample time设置
  8. 43.Linux/Unix 系统编程手册(下) -- 进程间通信简介
  9. JMeter之压力测试
  10. My BlackBerry
  11. 2021年数学建模B组代码
  12. Android中的Switch控件
  13. [UE4][C++]简单超人小游戏(游戏接受键盘事件)
  14. Android:EditText 设置弹出数字输入法键盘
  15. Arduino Uno 火焰传感器实验
  16. 『力扣刷题』5275_找出井字棋的获胜者 解题代码
  17. 当steam教育加入教学大纲之时
  18. LCD工作原理及结构
  19. 传感器检测技术——传感器的动态特性
  20. Hive任务实施(航空公司客户价值数据)

热门文章

  1. 【转载】我的算法图书
  2. 《从零开始的 RPG 游戏制作教程》第十一期:排泄、运行效率
  3. 什么是同源策略及解决跨域的三种方式
  4. 实现不同编程语言间的自由代码转换需要注意些什么?【经验分享】
  5. java数字密码字典生成器
  6. android弹窗闪退,绝地求生闪退是怎么回事_最新闪退弹窗解决办法
  7. 企业致胜之道,深耕客户关系
  8. 2013年最精致的企业网站设计欣赏【系列四】
  9. 【读过的书】《小王子》
  10. HCIA-南航金城-20211204