BigDecimal.setScale()方法

ⅰ亾dé卋堺 提交于 2019-12-24 22:00:48

方法使用

scale() 方法用于格式化小数点
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则向下舍(6及以上则向上入)

代码示例

import java.math.BigDecimal;

/**
 * @author yanghao
 * @version SetScale.java, v 0.1 2019-12-24 19:56
 */
public class SetScale {

    public static void main(String[] args){

        BigDecimal money = new BigDecimal("2.35");

        //格式化小数点
        System.out.println("scale == " + money.scale());

        //直接删除多余的小数位,如2.35会变成2.3
        System.out.println("ROUND_DOWN == " + money.setScale(1, BigDecimal.ROUND_DOWN));

        //进位处理(无论小数如何),2.35变成2.4
        System.out.println("ROUND_UP == " + money.setScale(1, BigDecimal.ROUND_UP));

        //四舍五入,2.35变成2.4(目前最常用的金额处理方法)
        System.out.println("ROUND_HALF_UP == " + money.setScale(1, BigDecimal.ROUND_HALF_UP));

        //四舍五入,2.35变成2.3,如果是5则向下舍(6及以上则向上入)
        System.out.println("ROUND_HALF_DOWN == " + money.setScale(1, BigDecimal.ROUND_HALF_DOWN));

    }

}

运行结果

scale == 2
ROUND_DOWN == 2.3
ROUND_UP == 2.4
ROUND_HALF_UP == 2.4
ROUND_HALF_DOWN == 2.3
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!