BigDecimal不整除的一个异常java.lang.ArithmeticException
2016-01-21 17:01
453 查看
通过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)
在 java中, 四舍五入通过 BigDecimal 来实现。一定要注意:BigDecimal is Immutable。
也就是跟String一样,对前一个的修改,比如setScale(), add()等都会返回一个新的BigDecimal.
四舍五入舍入模式是 BigDecimal.ROUND_HALF_UP
BigDecimal定义了一下舍入模式,只有在作除法运算或四舍五入时才用到舍入模式
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)
在 java中, 四舍五入通过 BigDecimal 来实现。一定要注意:BigDecimal is Immutable。
也就是跟String一样,对前一个的修改,比如setScale(), add()等都会返回一个新的BigDecimal.
四舍五入舍入模式是 BigDecimal.ROUND_HALF_UP
BigDecimal定义了一下舍入模式,只有在作除法运算或四舍五入时才用到舍入模式
相关文章推荐
- java导出excel表
- 资料推荐--Google Java编码规范
- springMVC 学到新的知识点
- 面向对象高级特性===Java静态内部类、匿名内部类、成员式内部类和局部内部类
- java实现排序二叉树
- [Java视频笔记]day03
- Java简单算法——分解质因数
- 整合 spring 4(包括mvc、context、orm) + mybatis 3 示例
- java请求第三方接口
- JVM学习篇(3)之Java内存模型与线程
- Eclipse源代码分析
- CXF3.0.2+Spring3.2.14 WebService入门实例五(上)
- java自定义异常
- JAVA 内存划分和GC
- 如何使用eclipse生成javadoc帮助文档
- Eclipse 用Hibernate Tools 生成 .hbm cfg.xml等文件
- eclipse从数据库逆向生成Hibernate实体类
- Java for Web学习笔记(十四):JSP(4)JSP Tag
- Java学习第10天(5):异常机制-Runtime异常
- Java学习第10天(4):异常机制-自定义异常