关于 BigDecimal 的小数位的入舍去操作

BigDecimal  保留小数 的 入舍操作, 6 中 策略 ;

RoundingMode 里面的 枚举 和      BigDecimal  的  常量 是等价的  UP(BigDecimal.ROUND_UP),

最后说说 6种策略的区别:

RoundingMode.CEILING:保留小数以后的全部都收

RoundingMode.DOWN:保留小数以后,向着靠近0 的 地方舍去 或者收,也就是 正数 舍去 ,负数收

RoundingMode.FLOOR:保留小数以后的全部都舍去

RoundingMode.HALF_DOWN:五舍六入

RoundingMode.HALF_UP:四舍五入

RoundingMode.HALF_EVEN: 保留小数的 最后一位 是奇数则四舍五入,若是偶数则五舍六入

原文地址:https://www.cnblogs.com/cxygg/p/9334816.html

时间: 2024-10-17 22:13:21

关于 BigDecimal 的小数位的入舍去操作的相关文章

Java中要使用 BigDecimal(定点数) 进行小数的相关操作,避免使用float等浮点数

Java中要使用 BigDecimal(定点数) 进行小数的相关操作,避免使用float等浮点数,因为 float, double等浮点的存储和操作(比如:相加,相减...)存在误差(7.22f - 7.0f = 0.21999979 而不是 0.22). 下面以 BigDecimal 进行减法为例: /**  * 精确的减法  */ public static double subtract(double v1, double v2) { BigDecimal d1 = new BigDeci

在堆栈中,push为入栈操作,pop为出栈操作

LinkedList提供以下方法:(ArrayList无此类方法) addFirst(); removeFirst(); addLast(); removeLast(); 在堆栈中,push为入栈操作,pop为出栈操作. Push用addFirst():pop用removeFirst(),实现后进先出. 用isEmpty()--其父类的方法,来判断栈是否为空. 在队列中,put为入队列操作,get为出队列操作. Put用addFirst(),get用removeLast()实现队列. 1 pac

SSH长时间登入不操作导致断开的解决办法有哪些?

大家肯定遇到过这样的情况,我们通过终端连接服务器时,当鼠标和键盘长时间不操作,服务器就会自动断开连接,我们还的需要重新连接,感觉很麻烦,下面总结一下解决此问题的方法 方法一: 修改/etc/ssh/sshd_config配置文件,找到ClientAliveCountMax(单位为分钟)修改你想要的值, 执行service sshd reload 方法二: 找到所在用户的.ssh目录,如root用户该目录在: /root/.ssh/ 在该目录创建config文件 vi /root/.ssh/con

SSH长时间登入不操作导致断开该怎么办?

大家肯定遇到过这样的情况,我们通过终端连接服务器时,当鼠标和键盘长时间不操作,服务器就会自动断开连接,我们还的需要重新连接,感觉很麻烦,下面总结一下解决此问题的方法 方法一: 修改/etc/ssh/sshd_config配置文件,找到ClientAliveCountMax(单位为分钟)修改你想要的值, 执行service sshd reload 方法二: 找到所在用户的.ssh目录,如root用户该目录在: /root/.ssh/ 在该目录创建config文件 vi /root/.ssh/con

BigDecimal 保留小数位

public class test1_format { public static void main(String[] args) { BigDecimal decimal = new BigDecimal("1.12345"); System.out.println(decimal); BigDecimal setScale = decimal.setScale(4,BigDecimal.ROUND_HALF_DOWN); System.out.println(setScale);

【数据结构之旅】顺序栈的定义、初始化、空栈判断、入栈、出栈操作

说明: 往前学习数据结构,想运行一个完整的顺序栈的程序都运行不了,因为书上给的都是一部分一部分的算法,并没有提供一个完整可运行的程序,听了实验课,自己折腾了一下,总算可以写一个比较完整的顺序栈操作的小程序,对于栈也慢慢开始有了感觉.下面我会把整个程序拆开来做说明,只要把这些代码放在一个文件中,用编译器就可以直接编译运行了. 一.实现 1.程序功能 关于栈操作的经典程序,首当要提及进制数转换的问题,利用栈的操作,就可以十分快速地完成数的进制转换. 2.预定义.头文件导入和类型别名 代码如下: #i

AACOS:基于编译器和操作系统内核的算法设计与实现

AACOS:基于编译器和操作系统内核的算法设计与实现 [计算机科学技术] 谢晓啸 湖北省沙市中学 [关键词]: 编译原理,操作系统内核实现,算法与数据结构,算法优化 0.索引 1.引论 1.1研究内容 1.2研究目的 1.3研究提要 正文 2.1研究方法 2.2编译器部分 2.2.1从计算器程序中得到的编译器制作启示 2.2.2在编译器中其它具体代码的实现 2.2.3编译器中栈的高级应用 2.2.3编译器中树的高级应用 2.2.4编译器与有限状态机 2.3操作系统内核部分 2.3.1操作系统与底

JAVASE02-Unit05: 集合操作 —— 查找表

Unit05: 集合操作 -- 查找表 使用该类测试自定义元素的集合排序 package day05; /** * 使用该类测试自定义元素的集合排序 * @author adminitartor * */ public class Point implements Comparable<Point>{ private int x; private int y; public Point(int x, int y) { super(); this.x = x; this.y = y; } pub

请列出你在从事IT生涯中,最难以忘怀的一次误操作

IT系统最怕什么,我觉得就两点: 1.不可靠的软硬件. 2.误操作. 第一点就不用解释了,第二点是该文的内容,主要摘选自ITPUB的精华贴——[精华] 请列出你在从事DBA生涯中,最难以忘怀的一次误操作 中摘录各位网友的经验和教训,常看看以警惕自己. #2 一次一个session占用内存很大,这个session id比较大,所以以为是用户进程,kill, 则库立刻down了,查日志后,才知道是一个后台进程,但详细是哪个进程,现在忘记了. 好的是库起来了,这个故障,我一直牢记于心. 现在做任何操作