bigdecimalJava中BigDecimal的8种舍入模式是怎样的
bigdecimal 时间:2021-07-30 阅读:(
)
BigDecimal 型变量该怎么赋值
BigDecimal AAA = new BigDecimal("X")
X为你设置的值
如果要四则运算
AAA= AAA.add(new BigDecimal("y"));
y为你想要加的值,此时AAA = X+y;
“add”可以换成别的方法,比如减乘除,你自己百度吧java中BigDecimal与Float,Double的区别
Float,Double 分别是对float和double的封装表示的精度和他们是一样的。
但里面有很多有用的方法。
。
比如Double.praseDouble()等等。
。
BigDecimal也是对数字类型数据的封装。
。
但他的精度是任意精度。
。
即随便多长随便小数点后多少位。
。
java使用BigDecimal格式化小数
方法一:
double myNum2 = 111231.5585478;
java.math.BigDecimal b = new java.math.BigDecimal(myNum2);
double myNum3 = b.setScale(5, java.math.BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(myNum2);
System.out.println(myNum3);
方法二:
double d = 3.1465926;
String result = String.format("%.5f", d);
System.out.println(result);java 中 BigDecimal 怎么与 0 比较
标准做法
int r=big_pareTo(BigDecimal.Zero); //和0,Zero比较
if(r==0) //等于
if(r==1) //大于
if(r==-1) //小于
或者
if(big_decimal.equals(BigDecimal.Zero)) //是否等于0Java中BigDecimal的8种舍入模式是怎样的
ava中BigDecimal的8种舍入模式是怎样的?下面长沙欧柏泰克软件学院和大家一起来学习下吧:
java.math.BigDecimal
不可变的、任意精度的有符号十进制数。
BigDecimal 由任意精度的整数非标度值和32位的整数标度(scale)组成。
如果为零或正数,则标度是小数点后的位数。
如果为负数,则将该数的非标度值乘以10的负scale次幂。
因此,BigDecimal表示的数值是(unscaledValue × 10-scale)。
与之相关的还有两个类:
java.math.MathContext:
该对象是封装上下文设置的不可变对象,它描述数字运算符的某些规则,如数据的精度,舍入方式等。
java.math.RoundingMode:
这是一种枚举类型,定义了很多常用的数据舍入方式。
这个类用起来还是很比较复杂的,原因在于舍入模式,数据运算规则太多太多,
不是数学专业出身的人看着中文API都难以理解,这些规则在实际中使用的时候在翻阅都来得及。
在银行、帐户、计费等领域,BigDecimal提供了精确的数值计算。
其中8种舍入方式值得掌握。
1、ROUND_UP
舍入远离零的舍入模式。
在丢弃非零部分之前始终增加数字(始终对非零舍弃部分前面的数字加1)。
注意,此舍入模式始终不会减少计算值的大小。
2、ROUND_DOWN
接近零的舍入模式。
在丢弃某部分之前始终不增加数字(从不对舍弃部分前面的数字加1,即截短)。
注意,此舍入模式始终不会增加计算值的大小。
3、ROUND_CEILING
接近正无穷大的舍入模式。
如果 BigDecimal 为正,则舍入行为与 ROUND_UP 相同;
如果为负,则舍入行为与 ROUND_DOWN 相同。
注意,此舍入模式始终不会减少计算值。
4、ROUND_FLOOR
接近负无穷大的舍入模式。
如果 BigDecimal 为正,则舍入行为与 ROUND_DOWN 相同;
如果为负,则舍入行为与 ROUND_UP 相同。
注意,此舍入模式始终不会增加计算值。
5、ROUND_HALF_UP
向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则为向上舍入的舍入模式。
如果舍弃部分 >= 0.5,则舍入行为与 ROUND_UP 相同;否则舍入行为与 ROUND_DOWN 相同。
注意,这是我们大多数人在小学时就学过的舍入模式(四舍五入)。
6、ROUND_HALF_DOWN
向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则为上舍入的舍入模式。
如果舍弃部分 > 0.5,则舍入行为与 ROUND_UP 相同;否则舍入行为与 ROUND_DOWN 相同(五舍六入)。
7、ROUND_HALF_EVEN
向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。
如果舍弃部分左边的数字为奇数,则舍入行为与 ROUND_HALF_UP 相同;
如果为偶数,则舍入行为与 ROUND_HALF_DOWN 相同。
注意,在重复进行一系列计算时,此舍入模式可以将累加错误减到最小。
此舍入模式也称为“银行家舍入法”,主要在美国使用。
四舍六入,五分两种情况。
如果前一位为奇数,则入位,否则舍去。
以下例子为保留小数点1位,那么这种舍入方式下的结果。
1.15>1.2 1.25>1.2
8、ROUND_UNNECESSARY
断言请求的操作具有精确的结果,因此不需要舍入。
如果对获得精确结果的操作指定此舍入模式,则抛出ArithmeticException。
美得云怎么样?美得云好不好?美得云是第一次来推广软文,老板人脾气特别好,能感觉出来会用心对待用户。美得云这次为大家提供了几款性价比十分高的产品,美国cera 2核4G 15元/月 香港1核 1G 3M独享 15元/月,并且还提供了免费空间给大家使用。嘻嘻 我也打算去白嫖一个空间了。新用户注册福利-8折优惠码:H2dmBKbF 截止2021.10.1结束。KVM架构,99.99%高可用性,依托BGP...
virmach怎么样?virmach家这几年非常火,从商家的黑五闪购开始,以超低的价格吸引了大批的国人客户,而且商家的机器还是非常稳定的,站长手里的4.75刀年付已经用了两年了,非常稳定,不过商家到国内的线路一般,目前商家新上了夏季优惠促销,价格低到发指,年付7.2美元起,商家反馈将在9月开始更换AMD+NVMe平台,这个消息从年初就有了,不过一直没有更换,目前这个时间也不确定是否准确。点击进入:...
妮妮云的来历妮妮云是 789 陈总 张总 三方共同投资建立的网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑妮妮云的市场定位妮妮云主要代理市场稳定速度的云服务器产品,避免新手购买云服务器的时候众多商家不知道如何选择,妮妮云就帮你选择好了产品,无需承担购买风险,不用担心出现被跑路 被诈骗的情况。妮妮云的售后保证妮妮云退款 通过于合作商的友好协商,云服务器提供2天内全额退款到网站余额,超过2天...
bigdecimal为你推荐
exploitExploit/LNK:20102568是怎么样的病毒?在线年龄查询器怎样喂熊熊?软件开发的周期知道开发一款App的周期是多久吗java学习思维导图如何成为一个很厉害的人思维导图色中色luntancoreldraw x6怎么抠图换背景微信语音在哪个文件夹微信语音在哪个文件夹 微信语音导出及amr格式转换智能公共广播系统有谁知道公共广播系统都包括那些设备腾讯汽车论坛如何推广一个小城市的汽车论坛99客服软件下载46级成绩查询忘记准考证怎么办pps电影PPS上最近有什么电影值得观看
ip查域名 景安vps 怎样申请域名 host1plus virpus 轻博客 godaddy域名转出 tk域名 国外空间 商务主机 100m免费空间 免费phpmysql空间 免费外链相册 江苏徐州移动 hdroad googlevoice 免费赚q币 塔式服务器 windows2008 空间排行榜 更多