Java基礎--double保留小數點后幾位


先說在作業中用到的

DecimalFormat df = new DecimalFormat("0.00");

String doubleNumAsString = df.format(doubleNum);

然后再用Double.valueOf()轉過來。

DecimalFormat這個類深究起來也是很深,所以暫且知道怎么用吧。

這里就借別人的測試和結論了:

import java.text.DecimalFormat;

public class DecimalFormatTest
{
    public static void main(String[]args){
        
        DecimalFormat df1,df2;
        
        System.out.println("整數部分0/#的區別");
        
        df1 = new DecimalFormat("#.00");
        df2 = new DecimalFormat("0.00");
        
        System.out.println(df1.format(0.1)); // .10
        System.out.println(df2.format(0.1)); // 0.10  
        
        System.out.println("小數部分0/#的區別");
        
        df1 = new DecimalFormat("0.00");
        df2 = new DecimalFormat("0.##");
        
        System.out.println(df1.format(0.1)); // 0.10
        System.out.println(df2.format(0.1)); // 0.1
        
        System.out.println(df1.format(0.006)); // 0.01
        System.out.println(df2.format(0.006)); // 0.01
        
        System.out.println("3、整數部分有多位");
        
        df1 = new DecimalFormat("0.00");
        df2 = new DecimalFormat("#.00");
        
        System.out.println(df1.format(2)); // 2.00
        System.out.println(df2.format(2)); // 2.00
        
        System.out.println(df1.format(20)); // 20.00
        System.out.println(df2.format(20)); // 20.00
        
        System.out.println(df1.format(200)); // 200.00
        System.out.println(df2.format(200)); // 200.00
        
        
    }
}

簡單來說,構造的時候0是占位符,#表示如果這位數字不存在就不顯示,它代表最大位數。所以對於小數如果用#.00,那個位就不會顯示。對於小數部分都滿足四舍五入

第二種比較常見的四舍五入方法是Math.round()

Math.round(int i)的取整是i加上0.5后向下取整,比如Math.round(-2.5)就是-2,Math.round(3.5)是4。如何用來保留小數點后幾位呢?Math.round(doubleNum * 100) / 100 就保留了小數點后2位,當然由於本身不是完全意義上的四舍五入,比如-2.5不保留,那直接會返回-2,不成立。

第三種是利用Stirng.format("%.2f",doubleNum)保留2位小數,它是可以做到四舍五入的,也可以改其他格式。返回值是String。

這個方法最大的好處可以對多個值同時格式處理,然后返回一個字符串。直接放一個鏈接在之后web開發的時候再深入。

https://blog.csdn.net/anita9999/article/details/82346552

 


免責聲明!

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



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