App下載

java怎么保留兩位小數?幾種方法總結!

猿友 2021-06-28 10:17:14 瀏覽數 (10878)
反饋

很多小伙伴在使用java的時候可能會遇到這樣的需求:一個浮點型的數據,我只需要保留兩位小數即可。而現(xiàn)實中往往的輸出情況卻大相徑庭。其實這都是數據沒有進行格式化的結果,java提供了很多方法來進行數據格式化,通過數據格式化,java可以將計算結果保留兩位小數。接下來小編通過java怎么保留兩位小數,來介紹一下java的浮點型數據格式化吧!

使用BigDecimal類進行數據格式化

?BigDecimal?類是?java.math?包中提供的一個API類,它可以用來對超過16位有效位的數據進行精確的運算。它提供了?format()?方法可以用來進行對數值的格式化控制。具體格式化代碼如下:

public static String format1(double value){
    BigDecimal bd = new BigDecimal(value);//創(chuàng)建一個bd對象,將要轉換的值value傳入構造函數
    bd = bd.setScale(2, RoundingMode.HALF_UP);//調用setScale方法進行數據格式化,保留兩位小數,采用四舍五入規(guī)則
    return bd.toString(); //返回bd對象的值(轉化為string形式)
}

使用DecimalFormat類進行數據格式化

?DecimalFormat?類是?NumberFormat?的一個具體子類,是用來格式化十進制數字的。使用該方法也可以簡單的格式化數據。具體格式化代碼如下:

public static String format2(double value) {
    DecimalFormat df = new DecimalFormat("0.00");//創(chuàng)建一個df對象,傳入0.00表示構造一個保留小數點后兩位的df對象
    df.setRoundingMode(RoundingMode.HALF_UP);//設置規(guī)則,這里采用的也是四舍五入規(guī)則
    return df.format(value);//返回value(在返回之前使用df對象的格式化方法將數據格式化)
}

使用NumberFormat類進行數據格式化

?NumberFormat?是所有數字格式的抽象基類。它用來提供格式化和解析數字的接口。它可以幫助開發(fā)者格式化和解析任何語言環(huán)境的數字。使用該方法格式化數據的代碼如下:

public static String format3(double value) {
    NumberFormat nf = NumberFormat.getNumberInstance();//獲取NumberFormat類的實例需要調用getInstance()方法
    nf.setMaximumFractionDigits(2);//設置強制保留兩位,避免出現(xiàn)10.00的時候返回10(也就是不滿兩位要用零補足兩位)
    nf.setMinimumFractionDigits(2);//設置強制保留兩位,如果有多出的就采用計數保留進行處理(也就是超過兩位的要進行進位換算)
    nf.setRoundingMode(RoundingMode.HALF_UP);//設置計數保留規(guī)則,這里采用四舍五入法
    nf.setGroupingUsed(false);//是否將數據使用逗號進行分組
    return nf.format(value);//返回value(在返回之前使nf對象的格式化方法將數據格式化)
}

使用java.util.Formatter進行數據格式化

使用?java.util.Formatter?也可以進行數據的格式化。具體代碼如下:

public static String format4(double value) {
    return new Formatter().format("%.2f", value).toString();
    //使用java.util.Formatter的format方法,可以將value數值格式化成指定格式的數據
    //%是格式化字符(與C語言類似).2表示保留小數點后兩位,f表示傳入的這個數值是浮點型
    //最后使用toString方法將數值轉換成字符串
}

使用String.format進行數據格式化(最常見簡單的方法)

?String.format?作為文本處理工具,為我們提供了強大而且豐富的字符串格式化功能,它也可以進行浮點數的格式化。具體的代碼如下:

public static String format5(double value) {
    return String.format("%.2f", value).toString();
    //%是格式化字符(與C語言類似).2表示保留小數點后兩位,f表示傳入的這個數值是浮點型
    //最后使用toString方法將數值轉換成字符串
}

以上可以堪稱是最簡單的方法了。但之所以稱它常見,是因為他可以直接在?print?中使用。例如:

double num = 123.4567899;
System.out.print(String.format("%.2f", num)); //直接在print中使用 

小結

以上就是java怎么保留兩位小數的幾種常見方法。小編個人認為掌握其中的一兩種即可(因為它們有的簡單,有的則具有共通之處),當然掌握更多的方法可以擁有更多的選擇,各位小伙伴也可以多學一些知識。

更多java基礎知識點,就到java教程


0 人點贊