Double值保留兩位小數的四種方法


public class DoubleTest {
    //保留兩位小數第三位如果大於4會進一位(四舍五入)
    double f = 6.23556;
    /**
      *使用精確小數BigDecimal
      */
    public void fun1() {
        BigDecimal bg = new BigDecimal(f);
        /**
         * 參數:
                newScale - 要返回的 BigDecimal 值的標度。
                roundingMode - 要應用的舍入模式。
          返回:
                一個 BigDecimal,其標度為指定值,其非標度值可以通過此 BigDecimal 的非標度值乘以或除以十的適當次冪來確定。
         */
        double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
        System.out.println(f1);
    }
 
    /**
     * DecimalFormat轉換最簡便
     */
    public void fun2() {
        DecimalFormat df = new DecimalFormat("#.00");
        System.out.println(df.format(f));
    }
 
    /**
     * String.format打印最簡便
     */
    public void fun3() {
        System.out.println(String.format("%.2f", f));
    }
   /**
     *使用NumberFormat
     */    public void fun4() {
        NumberFormat nf = NumberFormat.getNumberInstance();
        /**
         * setMaximumFractionDigits(int newValue)
           設置數的小數部分所允許的最大位數。
         */
        nf.setMaximumFractionDigits(2);
        System.out.println(nf.format(f));
    }
 
    public static void main(String[] args) {
        DoubleTest dt = new DoubleTest();
        dt.fun1();
        dt.fun2();
        dt.fun3();
        dt.fun4();
 
    }
}

原文:https://blog.csdn.net/hello_word2/article/details/81808827


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM