价格BigDecimal的加减乘除、小数四舍五入、比较
2024-09-02 07:15:52
num2必须改用传入String类型
//加法
BigDecimal result1 = num1.add(num2); //减法
BigDecimal result2 = num1.subtract(num2); //乘法
BigDecimal result3 = num1.multiply(num2); //除法
BigDecimal result5 = num2.divide(num1,20,BigDecimal.ROUND_HALF_UP); //绝对值
BigDecimal result4 = num3.abs();
小数部分操作
1. ROUND_DOWN
BigDecimal b = new BigDecimal("2.225667").setScale(2, BigDecimal.ROUND_DOWN);
System.out.println(b);//2.22 直接去掉多余的位数
2. ROUND_UP
BigDecimal c = new BigDecimal("2.224667").setScale(2, BigDecimal.ROUND_UP);
System.out.println(c);//2.23 跟上面相反,进位处理
3. ROUND_CEILING
天花板(向上),正数进位向上,负数舍位向上
BigDecimal f = new BigDecimal("2.224667").setScale(2, BigDecimal.ROUND_CEILING);
System.out.println(f);//2.23 如果是正数,相当于BigDecimal.ROUND_UP BigDecimal g = new BigDecimal("-2.225667").setScale(2, BigDecimal.ROUND_CEILING);
System.out.println(g);//-2.22 如果是负数,相当于BigDecimal.ROUND_DOWN
4. ROUND_FLOOR
地板(向下),正数舍位向下,负数进位向下
BigDecimal h = new BigDecimal("2.225667").setScale(2, BigDecimal.ROUND_FLOOR);
System.out.println(h);//2.22 如果是正数,相当于BigDecimal.ROUND_DOWN BigDecimal i = new BigDecimal("-2.224667").setScale(2, BigDecimal.ROUND_FLOOR);
System.out.println(i);//-2.23 如果是负数,相当于BigDecimal.ROUND_HALF_UP
5. ROUND_HALF_UP
BigDecimal d = new BigDecimal("2.225").setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println("ROUND_HALF_UP"+d); //2.23 四舍五入(若舍弃部分>=.5,就进位)
6. ROUND_HALF_DOWN
BigDecimal e = new BigDecimal("2.225").setScale(2, BigDecimal.ROUND_HALF_DOWN);
System.out.println("ROUND_HALF_DOWN"+e);//2.22 四舍五入(若舍弃部分>.5,就进位)
pow() 立方计算
BigDecimal bigDecimal=BigDecimal.TEN;
System.out.println(bigDecimal.pow(3)); //1000
数值比较
BigDecimal a = new BigDecimal ("1");
BigDecimal b = new BigDecimal ("2"); //使用compareTo方法比较 a、b不能为null
if(a.compareTo(b) == -1){
System.out.println("a小于b");
} if(a.compareTo(b) == 0){
System.out.println("a等于b");
} if(a.compareTo(b) == 1){
System.out.println("a大于b");
} if(a.compareTo(b) > -1){
System.out.println("a大于等于b");
} if(a.compareTo(b) < 1){
System.out.println("a小于等于b");
}
最新文章
- android中如何在低版本(5.0之前)上使用tint(着色)属性
- Metrics-Java版的指标度量工具之一
- 在linux终端执行clear或top命令时出现:&#39;xterm&#39; unknown terminal type的错误
- 解决vsftpd日志时间问题
- 用DependanceProperty做Dynamic换Icon
- AES加密算法
- iOS安全——代码混淆&;反编译
- Android 巧妙实现图片和文字上下布局或者左右布局
- Java hashCode 和 equals()
- [Redux] Passing the Store Down with <;Provider>; from React Redux
- ThreadLoacl,InheritableThreadLocal,原理,以及配合线程池使用的一些坑
- 怎么在多场景下使用不同的 git 账号 commit
- [转]Rabbitmq的使用及Web监控工具使用
- idea集成maven
- 简明 Vim 练级攻略------转自陈皓coolshell
- 【转】字符编码笔记:ASCII、Unicode、UTF-8 和 Base64
- win10如何获得管理员权限_百度经验
- Myelipse中xml约束文件的导入(以spring为例)
- SVD(奇异值分解)Python实现
- 用Setup Factory7.0怎样打包delphi的BDE?