BigDecimal中的大于等于、小于等于及加减乘除
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");
}
查看compareTo源码发现并无异常处理机制,所以a,b都不可为空,异常需提前处理。
基础运算:
//加减乘除:BigDecimal a= new BigDecimal("10");
BigDecimal b= new BigDecimal("5"); //加法 a.add(b); //减法 a.subtract(b); //乘法 a.multiply(b); //除法 a.divide(b); setScale(2) // 表示保留两位小数,默认用四舍五入方式
setScale(2,BigDecimal.ROUND_DOWN) // 向下取整
setScale(2,BigDecimal.ROUND_UP) // 向上取整
setScale(2,BigDecimal.ROUND_HALF_UP) // 四舍五入
setScaler(2,BigDecimal.ROUND_HALF_DOWN) // 四舍五入,如果是5则向下舍
常见错误:
1、BigDecial的所有操作都会生成一个新的对象:
amount.add( thisAmount ); // 错误
amount = amount.add( thisAmount ); // 正确
2、不要用equals方法来比较BigDecimal对象,因为它的equals方法会比较scale,如果scale不一样,它会返回false;
例如:
BigDecimal a = new BigDecimal("1.00");
BigDecimal b = new BigDecimal("1.0");
print(a.equals(b)); // false
3、如果直接使用a.divide(b)除法,有时会报除不尽异常,如下:
BigDecimal a = new BigDecimal(10);
BigDecimal b = new BigDecimal(3);
a = a.divide(b); // 错误会报如下异常:java.lang.ArithmeticException: Non-terminating
decimal expansion; no exact representable decimal result.
BigDecimal中的大于等于、小于等于及加减乘除相关推荐
- c语言如何表示大于小于等于,Excel 公式中大于和小于等于计算应怎么写
Excel 公式中大于和小于等于计算应怎么写以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Excel 公式中大于和小于 ...
- Mybaits中的大于小于等于
Mybaits中的大于小于等于及其他特殊符号的表达 前言 在mybatis中写sql语句时,我们偶尔会需要比较数据,这时就需要用到< .>.<=.>=等的这类符号.这类符号在m ...
- xml文件中的大于等于等一些特殊符号
xml 中表示: <= 小于等于. >= 大于等于 需加这样的标记: <![CDATA[ ]]> xml中有&的符号,需要<![CDATA[&]]> ...
- BigDecimal中divide方法与setScale方法详解
BigDecimal中divide方法详解 1.首先说一下用法,BigDecimal中的divide主要就是用来做除法的运算.其中有这么一个方法. public BigDecimal divide(B ...
- MySQL关于between and 和 大于等于 小于等于 你所会忽略的细节
MySQL关于between and 和 大于等于>= 小于等于<=,你所会忽略的细节 其实这两种SQL用法在大多数情况下都是一样的,比如: SELECT* FROMemployees W ...
- Mybatis中使用大于小于等于的正确方法
在mybatis中sql是写在xml映射文件中的,如果sql中有一些特殊字符的话,在解析xml文件的时候就会被转义,如若不希望被转义,那该怎么办呢? 方法一:使用特殊转义字符 例如,>=开始日期 ...
- BigDecimal中divide方法详解
1.首先说一下用法,BigDecimal中的divide主要就是用来做除法的运算.其中有这么一个方法. public BigDecimal divide(BigDecimal divisor,int ...
- BigDecimal中的ArithmeticException异常
BigDecimal中的ArithmeticException异常之 Non-terminating decimal expansion; no exact representable decimal ...
- Mybatis中的大于等于和小于等于、${}和#{}的区别
mybatis中可以直接使用>或<:但是不能直接使用>=或<=; 第一种写法(1): 原符号 < <= > >= & ' " 替换符号 ...
- MySQL中大于等于小于等于的写法
由于在mybatis框架的xml中<= , >=解析会出现问题,编译报错,所以需要转译 第一种写法: 原符号 < <= > >= & ' " 替换 ...
最新文章
- Android Studio 引入aar文件
- R语言ggplot2可视化在ggplot2生成的可视化结果下方显示文本:显示一些关于数据的信息
- 《精通Unix下C语言编程与项目实践》目录
- 蓝桥杯-01字串(java)
- http://circles.arenaofthemes.com/
- iPhone11因便宜销量超预期;三星手机曝高危漏洞;xUtils 3.8.3发布 | 极客头条
- 思科bfd静态路由切换_配置静态路由与BFD联动
- 割裂的前端工程师--- 2017年前端生态窥探
- HTML iframe标签下 子页面调用父页面js 容易产生的跨域调用问题 Uncaught DOMException
- [转]coolfire黑客入门教程系列之(三)
- 用外挂只为“吃鸡”成功?为什么不试试正当手段!
- 【2023秋招】10月22日美团校招真题
- 714. 买卖股票的最佳时机含手续费
- 今日头条怎么引流?头条暴力引流方法
- 信安学习-day13
- JvisualVM使用教程
- 会声会影2022视频编辑软件专业版
- 抖音如何变现(赚钱)
- Flash新手教程:打造拟真生态水族鱼缸-添加动画效果
- Codeforces Round #263 (Div. 1)-A,B,C
热门文章
- 1米6农村放牛娃的奋斗历程:从同济、港理工,到清华、伯克利大学!
- linux系统被×××后处理经历
- 【长难句分析精讲】状语从句
- System State 转储分析案例一则
- 网络协议:透彻解析HTTP协议
- 案例分享 | 蜂窝,是“蜂窝”,虹科HK-DAT数字衰减器助力蜂窝设备测试
- 数据分析-Excel知识点备忘-(1)高级筛选
- c语言中.def文件,VC++中的.DEF文件详解
- Can't connect to MySQL server on 'xxx.xxx.xxx.xxx' (10061),错误代码2003
- html制作一个视频播放器,H5 打造属于自己的视频播放器(HTML 篇)