[转]bigdecimal 保留小数位

Posted dirgo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[转]bigdecimal 保留小数位相关的知识,希望对你有一定的参考价值。

原文地址:https://www.cnblogs.com/liqforstudy/p/5652517.html

技术分享图片
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);
        
        BigDecimal setScale1 = decimal.setScale(4,BigDecimal.ROUND_HALF_UP);
        System.out.println(setScale1);
    }
}
技术分享图片

 

技术分享图片

参数定义

ROUND_CEILING 
Rounding mode to round towards positive infinity. 
向正无穷方向舍入 

ROUND_DOWN 
Rounding mode to round towards zero. 
向零方向舍入 

ROUND_FLOOR 
Rounding mode to round towards negative infinity. 
向负无穷方向舍入 

ROUND_HALF_DOWN
 
Rounding mode to round towards "nearest neighbor" unless both neighbors are equidistant, in which case round down. 
向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向下舍入, 例如1.55 保留一位小数结果为1.5 

ROUND_HALF_EVEN 
Rounding mode to round towards the "nearest neighbor" unless both neighbors are equidistant, in which case, round towards the even neighbor. 
向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,如果保留位数是奇数,使用ROUND_HALF_UP ,如果是偶数,使用ROUND_HALF_DOWN 


ROUND_HALF_UP 
Rounding mode to round towards "nearest neighbor" unless both neighbors are equidistant, in which case round up. 
向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向上舍入, 1.55保留一位小数结果为1.6 


ROUND_UNNECESSARY
 
Rounding mode to assert that the requested operation has an exact result, hence no rounding is necessary. 
计算结果是精确的,不需要舍入模式 


ROUND_UP 
Rounding mode to round away from zero. 
向远离0的方向舍入


































以上是关于[转]bigdecimal 保留小数位的主要内容,如果未能解决你的问题,请参考以下文章

BigDecimal的用法详解(保留两位小数,四舍五入,数字格式化,科学计数法转数字,数字里的逗号处理)

java BigDecimal用法详解(保留小数,四舍五入,数字格式化,科学计数法转数字等)

BigDecimal的用法详解(保留两位小数,四舍五入,数字格式化,科学计数法转数字,数字里的逗号处理)

bigDecimal保留后两位小数

Java里面BigDecimal.divide()方法能不能实现保留小数点前后共35位这样的操作

Java里面BigDecimal.divide()方法能不能实现保留小数点前后共35位这样的操作