美文网首页
在java中要求最后结果保留几位小数的做法

在java中要求最后结果保留几位小数的做法

作者: MissQin | 来源:发表于2017-08-23 19:45 被阅读0次

    本文章转自http://www.jb51.net/article/121784.htm 和http://www.cnblogs.com/langtianya/p/3986277.html

    目前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  =newBigDecimal(f);

    double f1  =  b.setScale(2,  RoundingMode.HALF_UP).doubleValue();

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

    方式二:

    java.text.DecimalFormat  df  =newjava.text.DecimalFormat(”#.00″);

    df.format(你要格式化的数字);

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

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

    方式三:

    doubled =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表示保留的位数

    相关文章

      网友评论

          本文标题:在java中要求最后结果保留几位小数的做法

          本文链接:https://www.haomeiwen.com/subject/mnsjdxtx.html