BigDecimal 的除法
2024-09-21 01:12:08
金额的数据类型是BigDecimal
通过BigDecimal的divide方法进行除法时当不整除,出现无限循环小数时,就会抛异常的,异常如下:java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result. at java.math.BigDecimal.divide(Unknown Source)
应用场景:一批中供客户的单价是1000元/年,如果按月计算的话1000/12=83.3333333333....
解决之道:就是给divide设置精确的小数点divide(xxxxx,2, BigDecimal.ROUND_HALF_EVEN)
public static void main(String[] args) {
BigDecimal a;
BigDecimal b;
a = new BigDecimal(3);
b = new BigDecimal(81);
System.out.print(a.divide(b, 2, RoundingMode.HALF_UP));
}
最新文章
- Android Activity动画
- Hibernate <;查询缓存>;
- 在VMware Workstation11虚拟机上安装黑苹果
- oracle数据库常用SQL语句
- 【转】TLB(Translation Lookaside Buffers,TLB)的作用
- 新浪云sae 邮件服务 quicksend()
- 【转】NHibernate入门教程
- 转: vim简明教程
- JUC学习笔记--JUC中并发工具类
- [LeetCode] 231 Power of Two &;&; 326 Power of Three &;&; 342 Power of Four
- 关于CSS 的position定位问题
- [译]在Asp.Net Core 中使用外部登陆(google、微博...)
- jsp 异步处理
- Javascript 字符串(一)常见函数使用
- vb的VSFlexGrid控件
- 回文(palindrome)
- python Flask post 数据 输出
- 洛谷 P2054 [AHOI2005]洗牌
- Android Studio 无法正确引入包内存在的类
- Android6.0指纹识别开发