BigDecimal类型计算和比较大小
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类型计算和比较大小相关推荐
- Java中BigDecimal类型的加减乘除及大小比对
Java中BigDecimal类型的加减乘除及大小比对 前言 BigDecimal解释 创建BigDecimal类型 加减乘除计算 结果分析 结论 除法的补充 两个BigDecimal的比对 前言 在 ...
- java中BigDecimal类型比较大小和绝对值计算
文章目录 前言 关键方法: 代码测试: 将equals()方法和compareTo()作比较 前言 涉及到BigDecimal类型的比较,最好使用compareTo()方法,不要用equals()方法 ...
- Java中使用BigDecimal类型比较大小
BigDecimal使用心得 BigDecimal使用场景 为什么要用BigDecimal 用BigDecimal的compareTo方法做大小判断 BigDecimal使用场景 BigDecimal ...
- java中BigDecimal类型数据大小比较
一 概述 在Java中会存在数值的比较,在进行金额计算的时候,一般会通过BigDecimal类型的数字进行计算. 二 BigDecimal类型数据大小比较 if(numOne.compareTo(nu ...
- java BigDecimal类型 比较大小
一般我们进行类型比较有.equals().==..compareTo() 但是当比较bigdecimal类型时最好使用.compareTo()来比较大小 BigDecimal a=BigDecimal ...
- BigDecimal 类型 比较大小
目录 1 BigDecimal 类型 比较大小 1 BigDecimal 类型 比较大小 public class QualityUtils {public static void main(Stri ...
- java的BigDecimal类型比较大小
java的BigDecimal类型比较大小 示例如下: /*** 根据数值: 比较超限信息* @param data* @param max* @param min* @return 报警状态: 0表 ...
- 字符串转bigdecimal类型_BigDecimal你会用吗?
点击关注"故里学Java" 右上角"设为星标"好文章不错过 在我们日常工作中数值计算是不可避免的,特别是电商类系统中,这个问题一般情况下我们都是特别注意的,但是 ...
- 什么注解可以改变BigDecimal类型的字段返回的小数位数?
什么注解可以改变BigDecimal类型的字段返回的小数位数?_myme95的博客-CSDN博客 问题背景:我在数据库里有一个字段,是decimal(20,15)类型,但是我在代码里返回数据给前端时, ...
最新文章
- C#用DesignSurface实现一个简单的窗体设计器
- python 词云_python数据可视化——词云
- 真香警告!2021Android高级面试题,挥泪整理面经
- vscode 执行npm命令_生产力终极指南:用了两年,如今才算真正会用VS Code
- Linux命令Man解释:PPPD(8):点对点daemon协议
- 指定复制的数据库或者表
- 【转】simulink中的sample time设置
- 43.Linux/Unix 系统编程手册(下) -- 进程间通信简介
- JMeter之压力测试
- My BlackBerry
- 2021年数学建模B组代码
- Android中的Switch控件
- [UE4][C++]简单超人小游戏(游戏接受键盘事件)
- Android:EditText 设置弹出数字输入法键盘
- Arduino Uno 火焰传感器实验
- 『力扣刷题』5275_找出井字棋的获胜者 解题代码
- 当steam教育加入教学大纲之时
- LCD工作原理及结构
- 传感器检测技术——传感器的动态特性
- Hive任务实施(航空公司客户价值数据)