BigDecimal使用时的参数详解
下面我们来看看BigDecimal的setScale方法
BigDecimal.setScale()方法用于格式化小数点
表示保留一位小数,默认用四舍五入方式
setScale(1)
直接删除多余的小数位,如2.35会变成2.3
setScale(1,BigDecimal.ROUND_DOWN)
进位处理,2.35变成2.4
setScale(1,BigDecimal.ROUND_UP)
四舍五入,2.35变成2.4
setScale(1,BigDecimal.ROUND_HALF_UP)
四舍五入,2.35变成2.3,如果是5则向下舍
setScaler(1,BigDecimal.ROUND_HALF_DOWN)
注意点一
scale指的是你小数点后的位数。scale()就是BigDecimal类中的方法。如
BigDecimal b = new BigDecimal("123.456");
b.scale(),返回的就是3
注意点二
roundingMode是小数的保留模式。它们都是BigDecimal中的常量字段,有很多种,如
BigDecimal.ROUND_HALF_UP表示的就是4舍5入
注意点三
pubilc BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)的意思是说:我用一个BigDecimal对象除以divisor后的结果,并且要求这个结果保留有scale个小数位,roundingMode表示的就是保留模式是什么,是四舍五入啊还是其它的
注意点四
对于一般add、subtract、multiply方法的小数位格式化如下
BigDecimal mData = new BigDecimal("9.655").setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println("mData=" + mData);
java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result
通过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)
BigDecimal使用时的参数详解相关推荐
- Nginx内置变量以及日志格式变量参数详解
Nginx内置变量以及日志格式变量参数详解 $args #请求中的参数值 $query_string #同 $args $arg_NAME #GET请求中NAME的值 $is_args #如果请求中有 ...
- Android 系统Dimension和间距参数详解
Android作为一个开放性的手持装置作业系统,势必面对终端显示器有多种不同规格的情况,这对程式开发者会有一定程度的困扰. 意图成为"云端的微软"的Google自然不会傻到任由开 ...
- k2698场效应管参数电流_mos管特性曲线-电流方程与参数详解
mos管特性曲线-电流方程与参数详解 mos管 本文主要讲N沟道增强型mos管特性曲线.电流方程及参数MOS管是金属-氧化物半导体场效应晶体管,简称金氧半场效晶体管. 一般是金属(metal)-氧化物 ...
- java微信支付必要参数_微信支付 开发账号体系各参数详解
商户在微信公众平台提交申请资料以及银行账户资料,资料审核通过并签约后,可以获得表6-4所示帐户(包含财付通的相关支付资金账户),用于公众帐号支付. 帐号及作用: appid :公众帐号身份的唯一标识. ...
- [转帖]Ipvsadm参数详解(常用命令)
Ipvsadm参数详解(常用命令) 2013年11月29日 12:41:40 怀素1980 阅读数:15901 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn ...
- nmos导通流向_技术参数详解,MOS管知识最全收录!
原标题:技术参数详解,MOS管知识最全收录! MOS管,即金属(Metal)-氧化物(Oxide)-半导体(Semiconductor)场效应晶体管,是一种应用场效应原理工作的半导体器件:和普通双极型 ...
- 布局中文件中【控件间距参数详解以及单位选择】
注意:例如:android:layout_gravity和android:gravity的区别: android:layout_gravity:此控件相对父控件的相对位置 android:gravit ...
- 窗口发送消息参数详解
窗口发送消息参数详解 // 窗口.发送消息 函数功能: 将指定的消息发送到一个窗口,同win32 api 里面的SendMessage等同的效果 中文函数原型: 发送消息(hwnd,msg ...
- MultiByteToWideChar和WideCharToMultiByte参数详解及使用方法
转自:https://www.cnblogs.com/ziwuge/archive/2011/11/05/2236968.html https://www.cnblogs.com/gakusei/ar ...
最新文章
- 国内第一本律师撰写的海关法律专业书籍-《企业如何应对海关行政处罚》-第五章...
- 小程序input框letter-spacing失效,处理方法
- mysql不复制数据_windows mysql不停止服务复制数据
- 操作系统中的一些基本概念
- Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - SSE扩展(10) - MXCSR状态控制指令
- php 修改 apk名称6,反编译sencha toucha打包的apk文件,修改应用名称支持中文以及去除应用标题栏...
- 7.1 XHTML的规范化
- TCP三次握手及原理
- 【渝粤教育】国家开放大学2018年秋季 0709-21T初级会计实务(一) 参考试题
- python中的pickle解析
- 利用WhiteHose一步步建立分布式系统的框架(七)--添加组件的操作并实现分布式系统...
- Facebook算法swift实现
- Deep Learning Notes: Chapter 1 Introduction
- Tensorflow2.0学习(八) — tf.dataset自定义图像数据集
- matlab二维傅里叶变换ffshift,形象理解二维傅里叶变换
- 柏拉图《会饮篇》阅读笔记
- js数组方法的返回值总结
- 投影仪为何要测评?原因就是,不当大冤种
- 青年同辈应该有大器晚成的心理准备,共勉
- 奥托尼克斯接近开关型号_奥托尼克斯接近开关型号如何选