淺談Java中浮點型數(shù)據(jù)保留兩位小數(shù)的四種方法
今天在進行開發(fā)的過程中遇到了一個小問題,是關(guān)于如何將double類型的數(shù)據(jù)保留兩位小數(shù)。突然發(fā)現(xiàn)這方面有一點欠缺,就來總結(jié)一下。
一、String類的方式
該方式是是使用String的format()方法來實現(xiàn)的,該方法的作用就是規(guī)范數(shù)據(jù)的格式,第一個參數(shù)傳入一個字符串來表示輸出的數(shù)據(jù)格式,如保留兩位小數(shù)就使用“%.2f”,第二個參數(shù)是要進行格式化的數(shù)據(jù)。實例如下:
double testDounle_01 = 123.456;
float testFloat_01 = 456.125f;
/**
* 使用string類的方式
* */
System.out.println("使用string類的方式");
System.out.println(String.format("%.2f", testDounle_01));
System.out.println(String.format("%.2f", testFloat_01));
二、DecimalFormat類
DecimalFormat類主要就是用于格式化十進制數(shù)據(jù)的,這個類是NumberFormat 的一個具體子類,操作和使用起來都比較方便。在使用的時候需要實例化這個類,構(gòu)造函數(shù)中傳入數(shù)據(jù)的格式類型。
其中各個符號的含義如下:

使用案例如下:
/**
* 測試保留兩位小數(shù)
*/
public static void testDoubleToTwo() {
/**
*DecimalFormat類
*/
DecimalFormat decimalFormat = new DecimalFormat("#.00");
String ans_3 = decimalFormat.format(testDounle_01);
System.out.println(ans_3);
}
三、BigDecimal類進行數(shù)據(jù)處理
java.math包中提供的API類BigDecimal,是用來對超過16位有效位的數(shù)進行精確的運算。雙精度浮點型變量double可以處理16位有效數(shù)。但是也可以用來定義小數(shù)點后兩位,但是使用起來比較麻煩,不太推薦使用。
double testDounle_01 = 123.456;
float testFloat_01 = 456.125f;
/**
* BigDecimal類進行數(shù)據(jù)處理
* */
BigDecimal bigDecimal = new BigDecimal(testDounle_01);
double ans_2 = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(ans_2);
四、NumberFormat類進行數(shù)據(jù)處理
NumberFormat類是數(shù)據(jù)格式化類,使用該類將浮點數(shù)保留二進制的方法和BigDecimal類似,但是使用起來也是十分的麻煩。
double testDounle_01 = 123.456;
float testFloat_01 = 456.125f;
/**
* NumberFormat類進行數(shù)據(jù)處理
* */
NumberFormat numberInstance = NumberFormat.getNumberInstance();
// 設(shè)置最大小數(shù)點位數(shù)
numberInstance.setMaximumFractionDigits(2);
// 設(shè)置數(shù)據(jù)舍入類型
numberInstance.setRoundingMode(RoundingMode.HALF_UP);
System.out.println(numberInstance.format(testDounle_01));
總結(jié)一下
對于將浮點型數(shù)據(jù)保留兩位小數(shù),我比較推薦的還是前兩種方法,或者是直接使用String.format()方法,
到此這篇關(guān)于淺談Java中浮點型數(shù)據(jù)保留兩位小數(shù)的四種方法的文章就介紹到這了,更多相關(guān)Java浮點型保留兩位小數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Idea開發(fā)工具之SpringBoot整合JSP的過程
最近在學(xué)習(xí)SpringBoot,看到SpringBoot整合jsp,順帶記錄一下。本文通過圖文實例相結(jié)合給大家講解SpringBoot整合JSP的過程,感興趣的朋友一起看看吧2021-09-09
Java 數(shù)組復(fù)制clone方法實現(xiàn)詳解
這篇文章主要介紹了Java 數(shù)組復(fù)制clone方法實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11
SpringBoot結(jié)合Vue實現(xiàn)投票系統(tǒng)過程詳解
這篇文章主要介紹了SpringBoot+Vue框架實現(xiàn)投票功能的項目系統(tǒng),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-09-09
Spring Security 實現(xiàn)“記住我”功能及原理解析
這篇文章主要介紹了Spring Security 實現(xiàn)“記住我”功能及原理解析,需要的朋友可以參考下2020-05-05
maven利用tomcat插件部署遠程Linux服務(wù)器的步驟詳解
Maven已經(jīng)是Java的項目管理常用方式,下面這篇文章主要給大家介紹了關(guān)于maven利用tomcat插件部署遠程Linux服務(wù)器的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11

