• 关于BigDecimal的四舍五入和截断 (2007-08-10 15:06:26)


    关于四舍五入:
    ROUND_HALF_UP: 遇到.5的情况时往上近似,例: 1.5 ->;2
    ROUND_HALF_DOWN : 遇到.5的情况时往下近似,例: 1.5 ->;1

    BigDecimal a = new BigDecimal(1.5); System.out.println("down="+a.setScale(0,BigDecimal.ROUND_HALF_DOWN)+" up="+a.setScale

    (0,BigDecimal.ROUND_HALF_UP));
    结果:down=1  up=2

    关于BigDecimal的截断:
    BigDecimal aa = new BigDecimal(99.999);
    aa=aa.setScale(2,BigDecimal.ROUND_DOWN);
    结果:aa=99.99,即在小数点后两位处截断。

    其他参数说明
      ROUND_CEILING    
      如果BigDecimal是正的,则做ROUND_UP操作;

      如果为负,则做ROUND_DOWN操作。       
      ROUND_FLOOR    
      如果BigDecimal为正,则作ROUND_UP;

      如果为负,则作ROUND_DOWN。    
      ROUND_HALF_DOWN  
      若舍弃部分> 0.5,则作ROUND_UP;

      否则,作ROUND_DOWN。    
      ROUND_HALF_EVEN    
      如果舍弃部分左边的数字为奇数,则作ROUND_HALF_UP;

      如果它为偶数,则作ROUND_HALF_DOWN。    
      ROUND_HALF_UP    
      若舍弃部分>=.5,则作ROUND_UP;否则作ROUND_DOWN。    
      ROUND_UNNECESSARY    
      该“伪舍入模式”实际是指明所要求的操作必须是精确的,

      因此不需要舍入操作。    
      ROUND_UP    
      总是在非0舍弃小数(即截断)之前增加数字。

     (其实就是只要不是0,就进一位的意思)
      ROUND_DOWN    
      从不在舍弃(即截断)的小数之前增加数字(其实就是截断的意思)。

  • 相关阅读:
    python面向对象
    Python基本数据类型
    小刘同学的第一百四十四篇博文
    小刘同学的第一百四十三篇日记
    小刘同学的第一百四十二篇日记
    小刘同学的第一百四十一篇日记
    小刘同学的第一百四十篇日记
    小刘同学的第一百三十九篇博文
    小刘同学的第一百三十八篇日记
    小刘同学的第一百三十七篇日记
  • 原文地址:https://www.cnblogs.com/tian830937/p/5090929.html
Copyright © 2020-2023  润新知