关于BigDecimal 的使用
来源:互联网 发布:免费域名注册网站 编辑:程序博客网 时间:2024/05/17 02:44
对于Java 来说,对于float与double的计算都是不准确的(来自于《effect in java 》),所以对于很多系统中钱的计算要非常小心,我们在计算钱时,要么把钱的单位由元变为分,这样就把钱的计算便成为int的计算,这个是准确的,但是也可用用BigDecimal来实现浮点数精确计算:
介绍一下BigDecimal下的各种方法:
add(BigDecimal add )加法,subtract(BigDecimal substract ) 为减法,devite(BigDecimal devite)为除法,multiply(BigDecimal multiply)为乘法。
这样基本的四则运算就完了,对于除法有时候结果出现除不尽,会报no exact representable decimal result.这个异常,这个问题如何解决?
对于devite()有个重构的方法:divide(BigDecimal divisor, int roundingMode),第二个参数是对除不尽的情况的处理:
roundingMode有以下这些:
static int ROUND_CEILING 向正无穷方向舍入
static int ROUND_DOWN 向零方向舍入
static int ROUND_FLOOR 向负无穷方向舍入
static int ROUND_HALF_DOWN 向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向下舍入, 例如1.55 保留一位小数结果为1.5
static int ROUND_HALF_EVEN 向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,如果保留位数是奇数,使用ROUND_HALF_UP ,如果是偶数,使用 ROUND_HALF_DOWN
static int ROUND_HALF_UP 向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向上舍入, 1.55保留一位小数结果为1.6
static int ROUND_UNNECESSARY 计算结果是精确的,不需要舍入模式
static int ROUND_UP 向远离0的方向舍入
- 关于BigDecimal的使用
- 关于BigDecimal 的使用
- 关于BIgDecimal的一些使用细节
- 关于BigDecimal的计算
- 关于使用BigDecimal类踩过的一些坑...
- BigDecimal的使用
- BigDecimal 的使用
- BigDecimal的使用
- BigDecimal类的使用
- java BigDecimal的使用
- BigDecimal 的使用方式
- BigDecimal的使用
- BigDecimal对象的使用
- BigDecimal类的使用
- BigDecimal的使用
- BigDecimal的使用
- BigDecimal的简单使用
- BigDecimal的使用
- JS:求两个数组的差异,并返回差异值组成的数组
- Applications----模拟
- Redis基础数据类型详解之Hash
- 直接调用阿里云接口爬取数据
- 交换瓶子
- 关于BigDecimal 的使用
- Jquery each方法,call方法
- 设计模式六大原则(6):开闭原则
- hal库配置time需要修改库函数的地方
- 64位Linux下编译cximage动态库
- 多元线性回归模型的F检验
- html+css-清除浮动
- 如何利用 JConsole观察分析Java程序的运行,进行排错调优
- mybatis理论总结