马欢欢 2013-09-17 09:44 采纳率: 100%
浏览 5342
已采纳

求高手解答:DecimalFormat四舍五入问题。

我需要将一个数字格式化为###.0000格式,比如1.2,格式化为1.2000
12.00005,我希望得到12.0001
很遗憾我现在没有找到好的办法可以达到我的目的。
下面为我的测试代码。
求大神给个方法,最好也能解释下java.text.DecimalFormat的机制。

public class FormatTest {

    public static void main(String[] args) {
        java.text.DecimalFormat df = new java.text.DecimalFormat("###.0000");
        java.lang.Double db1 = new java.lang.Double("12.00005");
        java.lang.Double db2 = new java.lang.Double("12.00006");
        java.lang.Double db3 = new java.lang.Double("12.000055");
        java.lang.Double db4 = new java.lang.Double("12.000056");

        System.out.println(df.format(db1)); // 输出结果是12.0000
        System.out.println(df.format(db2)); // 输出结果是12.0001
        System.out.println(df.format(db3)); // 输出结果是12.0001
        System.out.println(df.format(db4)); // 输出结果是12.0001

    }
}
  • 写回答

3条回答 默认 最新

  • dison_ 2013-09-18 10:19
    关注
     double d = 3.1465926;  
     String result = String.format("%.4f", d);
     System.out.println(result);
    

    可以使用这个试试!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?