我是靠谱客的博主 彩色睫毛,最近开发中收集的这篇文章主要介绍BigDecimal 小数舍入模式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

BigDecimal 小数舍入模式

 public static void main(String[] args) {
        log.info("启动");
        BigDecimal num = new BigDecimal("123.4567");//255.4631取值小数点后的位数
        //取值小数点后的位数
        System.out.println(num.scale());//结果:4
        //取值并保留一位小数,直接删除多余的小数位
        System.out.println(num.setScale(1, BigDecimal.ROUND_DOWN));//结果:123.4
        //取值并保留一位小数,进位处理
        System.out.println(num.setScale(1, BigDecimal.ROUND_UP));//结果:123.5
        num = new BigDecimal("3.45");//1.35
        //取值并保留一位小数,四舍五入 向下舍
        System.out.println(num.setScale(1, BigDecimal.ROUND_HALF_DOWN));//结果:3.4
        //取值并保留一位小数,四舍五入 向上舍
        System.out.println(num.setScale(1, BigDecimal.ROUND_HALF_UP));//结果:3.5
    }
  • ROUND_CEILING //向正无穷方向舍入

  • ROUND_DOWN //向零方向舍入

  • ROUND_FLOOR //向负无穷方向舍入

  • ROUND_HALF_DOWN //向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向下舍入, 例如1.55 保留一位小数结果为1.5

  • ROUND_HALF_EVEN //向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,如果保留位数是奇数,使用ROUND_HALF_UP,如果是偶数,使用ROUND_HALF_DOWN

  • ROUND_HALF_UP //向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向上舍入, 1.55保留一位小数结果为1.6

  • ROUND_UNNECESSARY //计算结果是精确的,不需要舍入模式

  • ROUND_UP //向远离0的方向舍入

  • 需要对BigDecimal进行截断和四舍五入可用setScale方法,例:

public static void main(String[] args){
    BigDecimal num = new BigDecimal("12.3456");
    num  = num .setScale(3, RoundingMode.HALF_UP);//保留3位小数,且四舍五入
    System.out.println(num);//结果:12.346
}

最后

以上就是彩色睫毛为你收集整理的BigDecimal 小数舍入模式的全部内容,希望文章能够帮你解决BigDecimal 小数舍入模式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部