java Double保留小數點位數


 

0和#都是占位符,但在不同的地方,作用不一樣
0:
比實際數字的位數多,不足的地方用0補上。
new DecimalFormat("00.00").format(3.14) //結果:03.14
new DecimalFormat("0.000").format(3.14) //結果: 3.140
new DecimalFormat("00.000").format(3.14) //結果:03.140

比實際數字的位數少:整數部分不改動,小數部分,四舍五入
new DecimalFormat("0.000").format(13.146) //結果:13.146
new DecimalFormat("00.00").format(13.146) //結果:13.15
new DecimalFormat("0.00").format(13.146) //結果:13.15
#:
比實際數字的位數多,不變。
new DecimalFormat("##.##").format(3.14) //結果:3.14
new DecimalFormat("#.###").format(3.14) //結果: 3.14
new DecimalFormat("##.###").format(3.14) //結果:3.14

比實際數字的位數少:整數部分不改動,小數部分,四舍五入
new DecimalFormat("#.###").format(13.146) //結果:13.146
new DecimalFormat("##.##").format(13.146) //結果:13.15
new DecimalFormat("#.##").format(13.146) //結果:13.15 

 

4種方法,都是四舍五入,例:

    import java.math.BigDecimal;
    import java.text.DecimalFormat;
    import java.text.NumberFormat;
    public class format {
        double f = 111231.5585;
        public void m1() {
            BigDecimal bg = new BigDecimal(f);
            double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
            System.out.println(f1);
        }
        /**
         * DecimalFormat轉換最簡便
         */
        public void m2() {
            DecimalFormat df = new DecimalFormat("#.00");
            System.out.println(df.format(f));
        }
        /**
         * String.format打印最簡便
         */
        public void m3() {
            System.out.println(String.format("%.2f", f));
        }
        public void m4() {
            NumberFormat nf = NumberFormat.getNumberInstance();
            nf.setMaximumFractionDigits(2);
            System.out.println(nf.format(f));
        }
        public static void main(String[] args) {
            format f = new format();
            f.m1();
            f.m2();
            f.m3();
            f.m4();
        }
    }
//還有一種直接向上取整數
<H2 class="title content-title">//java:Java的取整函數</H2>    <DIV id=content class="content mod-cs-content text-content clearfix"> //Math.floor()、Math.ceil()、BigDecimal都是Java中的取整函數,但返回值卻不一樣
            
            Math.floor()
            通過該函數計算后的返回值是舍去小數點后的數值
            如:Math.floor(3.2)返回3
            Math.floor(3.9)返回3
            Math.floor(3.0)返回3
            
            Math.ceil()
            ceil函數只要小數點非0,將返回整數部分+1
            如:Math.ceil(3.2)返回4
            Math.ceil(3.9)返回4
            Math.ceil(3.0)返回3 </DIV>

 


免責聲明!

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



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