BigDecimal中的ArithmeticException异常
BigDecimal中的ArithmeticException异常之 Non-terminating decimal expansion; no exact representable decimal result.
使用BigDecimal两个数做除法的时候,有时会抛出这样的异常: Non-terminating decimal expansion; no exact representable decimal result。直接从百度翻译出来结果是:非终止十进制扩展,没有可精确表示的十进制结果。此时也就是divide方法进行除法时当不整除,出现无限循环小数时,就会抛异常。
解决方式:设置精确的小数位位数。
例如:
//小数位2位
end.divide(start, 2, BigDecimal.ROUND_UP)
源码,scale是小数位,roundingMode是常量。
static int |
ROUND_CEILING Rounding mode to round towards positive infinity. 向正无穷方向舍入 |
static int |
ROUND_DOWN Rounding mode to round towards zero. 向零方向舍入 |
static int |
ROUND_FLOOR Rounding mode to round towards negative infinity. 向负无穷方向舍入 |
static int |
ROUND_HALF_DOWN Rounding mode to round towards "nearest neighbor" unless both neighbors are equidistant, in which case round down. 向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向下舍入,例如1.55保留一位 小数结果为1.5 |
static int |
ROUND_HALF_EVEN Rounding mode to round towards the "nearest neighbor" unless both neighbors are equidistant, in which case, round towards the even neighbor. 向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,如果保留位数是奇数, 使用ROUND_HALF_UP,如果是偶数,使用ROUND_HALF_DOWN |
static int |
ROUND_HALF_UP Rounding mode to round towards "nearest neighbor" unless both neighbors are equidistant, in which case round up. 向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向上舍入, 1.55保留一位 小数结果为1.6 |
static int |
ROUND_UNNECESSARY Rounding mode to assert that the requested operation has an exact result, hence no rounding is necessary. 计算结果是精确的,不需要舍入模式 |
static int |
ROUND_UP Rounding mode to round away from zero. 向远离0的方向舍入 |
BigDecimal中的ArithmeticException异常相关推荐
- 从键盘输入两个数作为除数和被除数。要求程序中捕获NumberFormatException 异常和ArithmeticException 异常, 而且无论在哪种情况下,“程序执行结束”这句话都会在控制
编写应用程序,从键盘输入两个数作为除数和被除数.要求程序中捕获NumberFormatException 异常和ArithmeticException 异常, 而且无论在哪种情况下,"程序执 ...
- 编写应用程序,从命令行传入两个整型数作为除数和被除数。要求程序中捕获NumberFormatException 异常和ArithmeticException异常,而且无论在哪种情况下,“总是被执行
package com.bw.tryCatch;import java.util.Scanner;public class zuoYe1 {// 编写应用程序,从命令行传入两个整型数作为除数和被除数. ...
- java 异常 中英文_史上最全的Java中所有Exception异常中英文对照
Java中所有Exception异常中英文对照AclNotFoundException, 如果对不存在的访问控制列表进行访问,则会 ArithmeticException 算数异常 ArrayInde ...
- java 到异常_java编程中遇到的异常以及异常的一些处理
n 异常的概念 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户? 比如除法运算.读写文件操作,都可能 ...
- java中字输入输出异常_Java:详解Java中的异常(Error与Exception)
一. 异常机制的概述 异常机制是指当程序出现错误后,程序如何处理.具体来说,异常机制提供了程序退出的安全通道.当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器. 程序错误分为三种:1 ...
- 异常类练习——编写应用程序,从键盘输入两个数作为除数和被除数。捕获NumberFormatException 异常和ArithmeticException 异常,
编写应用程序,从键盘输入两个数作为除数和被除数.要求程序中捕获NumberFormatException 异常和ArithmeticException 异常,而且无论在哪种情况下,"程序执行 ...
- Android中处理崩溃异常
2019独角兽企业重金招聘Python工程师标准>>> 大家都知道,现在安装Android系统的手机版本和设备千差万别,在模拟器上运行良好的程序安装到某款手机上说不定就出现崩溃的现象 ...
- eclipse中测试Hibernate异常报 ORA-00926: 缺失 VALUES 关键字
eclipse中测试Hibernate异常报 ORA-00926: 缺失 VALUES 关键字 参考文章: (1)eclipse中测试Hibernate异常报 ORA-00926: 缺失 VALUES ...
- 如何处理Entity Framework中的DbUpdateConcurrencyException异常
如何处理Entity Framework中的DbUpdateConcurrencyException异常 参考文章: (1)如何处理Entity Framework中的DbUpdateConcurre ...
最新文章
- Matlab实现直方图均衡化(基于自定义函数)
- debug打印的有意思的方法
- JavaScript 找出数组中重复的元素
- .NET Mvc Razor也可以这样玩!
- EJS学习(三)之语法规则中
- 在使用Cocos2d-JS 开发过程中需要用到的单体设计模式
- 技术绩效考量:你们可能都做错了
- Fater R-CNN 整体把握
- android自动回复退订,Android实现短信自动回复,挂电话
- HAO3GP整站源码学生当时就蒙了
- 小程序嵌套的h5页面的转发功能
- Ubuntu安装google中文输入法
- RFM、PSM、波士顿矩阵模型简介
- 分析QQ和QQ游戏的价值特性极其快速发展的原因,并对其盈利模式进行探讨
- Linux下设置网卡速率 降低网卡速度
- 【ACCV2022】论文阅读笔记Lightweight Alpha Matting Network Using Distillation-Based Channel Pruning
- HTML静态网页作业——基于html+css+javascript+jquery+bootstarp响应式成都家乡介绍网页...
- 23、python对数据进行求和、方差、平均值等基本统计指标计算
- 读书之后写笔记的软件哪个好
- 图片大小自适应QImage::scaled ()
热门文章
- 【游戏开发问题】Unity自己莫名其妙添加了ACCESS_FINE_LOCATION权限的问题
- 处理火焰的MATLAB程序,炉膛火焰图像预处理的MATLAB实现
- 第一代电子计算机物理器件,第一代电子计算机采用的物理器件是。
- TI6678 MSMC关闭Cache方法总结
- ctfshow单身杯
- 让我想到微观经济学的一个题 1200. Horns and Hoofs
- null pointer
- 未来的计算机会突破冯诺依曼,2)冯诺依曼计算机会产生人工智能吗?
- apple pay 和 In-App Purchase(app内购)
- Mac (M1)搭建QGC地面站环境