zoukankan      html  css  js  c++  java
  • java提高篇(三)_四舍五入 转自 http://cmsblogs.com

    美国银行家银行家舍入法

          舍去位的数值小于5时,直接舍去。

          舍去位的数值大于5时,进位后舍去。

          当舍去位的数值等于5时,若5后面还有其他非0数值,则进位后舍去,若5后面是0时,则根据5前一位数的奇偶性来判断,奇数进位,偶数舍去。

    举例:

             11.556 = 11.56          ------六入

             11.554 = 11.55          -----四舍

             11.5551 = 11.56         -----五后有数进位

             11.545 = 11.54          -----五后无数,若前位为偶数应舍去

             11.555 = 11.56          -----五后无数,若前位为奇数应进位

    JAVA 支持的7种舍入法

    在上面简单地介绍了银行家舍入法,目前java支持7中舍入法:

          1、 ROUND_UP:远离零方向舍入。向绝对值最大的方向舍入,只要舍弃位非0即进位。

          2、 ROUND_DOWN:趋向零方向舍入。向绝对值最小的方向输入,所有的位都要舍弃,不存在进位情况。

         3、 ROUND_CEILING:向正无穷方向舍入。向正最大方向靠拢。若是正数,舍入行为类似于ROUND_UP,若为负数,舍入行为类似于ROUND_DOWN。Math.round()方法就是使用的此模式。

          4、 ROUND_FLOOR:向负无穷方向舍入。向负无穷方向靠拢。若是正数,舍入行为类似于ROUND_DOWN;若为负数,舍入行为类似于ROUND_UP。

          5、 HALF_UP:最近数字舍入(5进)。这是我们最经典的四舍五入。

          6、 HALF_DOWN:最近数字舍入(5舍)。在这里5是要舍弃的。

          7、 HAIL_EVEN:银行家舍入法。


          提到四舍五入那么保留位就必不可少了,在java运算中我们可以使用多种方式来实现保留位。

    保留位

    方法一:四舍五入

    double   f   =   111231.5585;
    BigDecimal   b   =   new   BigDecimal(f);
    double   f1   =   b.setScale(2,   RoundingMode.HALF_UP).doubleValue();

           在这里使用BigDecimal ,并且采用setScale方法来设置精确度,同时使用RoundingMode.HALF_UP表示使用最近数字舍入法则来近似计算。在这里我们可以看出BigDecimal和四舍五入是绝妙的搭配。

    方式二:

    java.text.DecimalFormat   df   =new   java.text.DecimalFormat(”#.00″);
    df.format(你要格式化的数字);

       例:new java.text.DecimalFormat(”#.00″).format(3.1415926)

          #.00 表示两位小数 #.0000四位小数 以此类推…

    方式三: 

    double d = 3.1415926;
    
    String result = String .format(”%.2f”);
    
    %.2f %. 表示 小数点前任意位数   2 表示两位小数 格式后的结果为f 表示浮点型。

    方式四: 

          此外如果使用struts标签做输出的话,有个format属性,设置为format="0.00"就是保留两位小数

          例如:

    复制代码
    <bean:write name="entity" property="dkhAFSumPl"  format="0.00" />
    
    或者
    
    <fmt:formatNumber type="number" value="${10000.22/100}" maxFractionDigits="0"/>
    
    maxFractionDigits表示保留的位数
    上天会实现勤劳的人的志愿; 有耕耘就会有收获; 我们只要不懈努力; 最大限度的完善充实自己; 千方百计的提高自己的竞争实力; 就会有一个美好光明的明天。
  • 相关阅读:
    phonegap ios插件开发及无限后台运行解决
    iOS JSON解析
    ios上取得设备唯一标志的解决方案
    为iOS7重新设计你的App
    iOS多线程GCD 研究
    自定义用户环境
    启用SELinux保护
    shell编写一个批量添加用户脚本
    shell编写一个判断脚本
    shell使用特殊变量
  • 原文地址:https://www.cnblogs.com/jerryfchina/p/3822079.html
Copyright © 2011-2022 走看看