Java中BigDecimal的舍入模式解析(RoundingMode)
作者:布客飞龙 发布时间:2021-10-16 15:28:16
标签:Java,BigDecimal,舍入模式,RoundingMode
BigDecimal的舍入模式(RoundingMode)
BigDecimal.divide方法中必须设置roundingMode,不然会报错。
ROUND_UP
:向正无穷方向对齐(转换为正无穷方向最接近的所需数值)ROUND_DOWN
:向负无穷方向对齐ROUND_CEILING
:向原点的反方向对齐ROUND_FLOOR
:向原点方向对齐ROUND_HALF_UP
:“四舍五入”,如果舍弃部分的最高位大于等于 5,向正无穷方向对齐,否则向负无穷方向对齐ROUND_HALF_DOWN
:“五舍六入”,如果舍弃部分的最高位大于 5,向正无穷方向对齐,否则向负无穷方向对齐ROUND_HALF_EVEN
:“四舍六入五成双”,如果舍弃部分的最高位大于等于六,或等于五并且前一位是奇数,向正无穷方向对齐,否则向负无穷方向对齐ROUND_UNNECESSARY
:如果需要舍入,就抛出算术异常
BigDecimal的常规用法
在java项目中一般来bigdecimal来进行 精度较高的金钱 运算 ,以及浮点数的运算。
Bigdecimal a =new Bigdecimal(1);
Bigdecimal b =new Bigdecimal(1);
加法
a.add(b)
减法
a.subtract(b)
乘法
a.multiply(b)
除法
a.divide(b)
在运用中可以进行小数点的格式化 运算。
BigDecimal.setScale()方法用于格式化小数点
setScale(1)表示保留一位小数,默认用四舍五入方式
setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位,如2.35会变成2.3
setScale(1,BigDecimal.ROUND_UP)进位处理,2.35变成2.4
setScale(1,BigDecimal.ROUND_HALF_UP)四舍五入,2.35变成2.4
setScaler(1,BigDecimal.ROUND_HALF_DOWN)四舍五入,2.35变成2.3,如果是5则向下舍
setScaler(1,BigDecimal.ROUND_CEILING)接近正无穷大的舍入
setScaler(1,BigDecimal.ROUND_FLOOR)接近负无穷大的舍入,数字>0和ROUND_UP作用一样,数字<0和ROU
来源:https://wizard.blog.csdn.net/article/details/107825454


猜你喜欢
- 菜单控制:可以用来判断这个用户是不是有这些角色,没有的话就不展示数据控制:由于数据都是从后端查的,在后端控制权限就可以了<!-- &n
- IDEA全局替换通过快捷键 Ctrl+Shift+r 或这点击 Edit 》Find 》Replace In Path有些IDEA版本按了快
- DrawerLayout顾名思义就是一个管理布局的。使用方式可以与其它的布局类类似。DrawerLayout带有滑动的功能。只要按照draw
- 本文实现android系统照相机的调用来拍照项目的布局相当简单,只有一个Button:<RelativeLayout xmlns:an
- 本文实例讲述了Java获取UTC时间的方法。分享给大家供大家参考,具体如下:取得本地时间:java.util.Calendar cal =
- 标识符Java 对各种变量、方法和类等要素命名时使用的字符序列称为标识符技巧:凡是自己可以起名字的地方都叫标识符定义合法标识符规则:由26个
- 概述早期的 Android 系统不完善,导致 App 侧有很多空子可以钻,因此它们有着有着各种各样的姿势进行保活。譬如说在 Android
- 本文实例为大家分享了Unity实现ScrollView滑动吸附的具体代码,供大家参考,具体内容如下最近在做一个展示模块的时候遇到了一个需要实
- 本文实例为大家分享了java实现简单俄罗斯方块的具体代码,供大家参考,具体内容如下结合网上的资料刚做完课程设计,具体代码如下:public
- 0.前言文章需求:对于学生来说,目前网上确实没有比较统一而且质量好的支付教程。因为支付对个人开发者尤其是学生来说不太友好。因此,自己折腾两天
- 一、题目描述题目实现:在进行网络编程时,由于进行网络连接是比较消耗资源的,因此,可以对连接的等待时间进行设置,如果在规定的时间没有进行连接,
- 单例模式大概是所有设计模式中最简单的一种,如果在面试时被问及熟悉哪些设计模式,你可能第一个答的就是单例模式。单例模式的实现分为两种:饿汉式和
- 本文实例为大家分享了C#实现简易计算器功能的具体代码,供大家参考,具体内容如下实现页面布局和数值初始化using System;using
- pom.xml<dependency> <groupId>org.springframework.bo
- 一直到大四才开始写自己的第一篇博客,说来实在有点羞愧。今天写了关于排序的算法题,有插入排序,冒泡排序,选择排序,以下贴上用JAVA实现的代码
- 本文实例讲述了Android的三种菜单。分享给大家供大家参考。具体分析如下:Android的菜单分为三种类型:选项菜单(Option Men
- 项目需要对接外部接口,将图片文件流发送到外部接口,下面代码就是HttpsURLConnection如何上传文件流:/** *
- 前言之前写过 Mybatis Plus 的基本配置和使用。Mybatis-Plus 看这一篇就够了当初在进行查询时,虽然没有写硬SQL进行查
- 在android开发中,我们时常会遇到对字符串中某些固定的字段实现可点击和颜色的设置,现粘贴处我在开发中如何设置这些属性的。代码如下:pri
- 发送邮件在web开发中,发送邮件是一个很常用的功能,Spring Boot也集成了发送邮件的功能基本使用使用Spring Boot的发送邮件