Java中的DecimalFormat用法解析
DecimalFormat用法
在項目中遇到需要維護(hù)層級關(guān)系的數(shù)據(jù),在parentid里遇到這樣一個需求,需要在一個數(shù)的前面加0,使這個字符串保持固定的長度,這樣就遇到了這個類——DecimalFormat,繼承自NumberFormat。 在這里記錄一下它常用到的一些方法和使用方法:
double pi = 13.1415926; System.out.println(new DecimalFormat("整數(shù)部分是#").format(pi));//13 System.out.println(new DecimalFormat("0.0").format(pi));//13.1 System.out.println(new DecimalFormat("000.000").format(pi));//013.142 //以百分比方式計數(shù),并取兩位小數(shù) System.out.println(new DecimalFormat("#.##%").format(pi));//1314.16% System.out.println(DecimalFormat.getCurrencyInstance().format(pi));//¥13.14 long c=299792458;//光速 //每三位以逗號進(jìn)行分隔 System.out.println(new DecimalFormat(",###").format(c));//299,792,458
在使用的時候我還發(fā)現(xiàn)有#和0兩種占位符,于是我又查了一下它們的區(qū)別
System.out.println(new java.text.DecimalFormat("#.###").format(3.0)); //3 System.out.println(new java.text.DecimalFormat("0.000").format(3.0) ); //3..000 DecimalFormat df1,df2; System.out.println("整數(shù)部分0/#的區(qū)別"); 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("小數(shù)部分0/#的區(qū)別"); 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、整數(shù)部分有多位"); 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
結(jié)論:
1、小數(shù)部分 #代表最多有幾位,0代表必須有且只能有幾位 .00 表示最終結(jié)果得有兩位小數(shù),沒有,我給你加上;多了,就四舍五入第三個小數(shù) .## 標(biāo)示最終結(jié)果最多有兩位小數(shù) 一位或者沒有都可以 多了同樣四舍五入第三位
2、整數(shù)部分 0 和 # 當(dāng)整數(shù)部分為0時 比如 0.1 # 此時認(rèn)為整數(shù)部分不存在,所以不寫 0 認(rèn)為沒有至少也得一位,寫上0 這跟上面第一部分的表現(xiàn)是一致的:# 有就寫,沒有就不寫 ;0 必須有 沒有補(bǔ)0
3、整數(shù)部分有多位時: 2 20 200 由上面的結(jié)果可以看出 0和#對整數(shù)部分多位時的處理是一致的 就是有幾位寫多少位 這跟上面兩部分的表現(xiàn)是不一致的 在有多位時,0和#都沒有匹配位數(shù),而是有多少寫多少
到此這篇關(guān)于Java中的DecimalFormat用法解析的文章就介紹到這了,更多相關(guān)DecimalFormat用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
通過Java實現(xiàn)對PDF頁面的詳細(xì)設(shè)置
這篇文章主要介紹了通過Java實現(xiàn)對PDF頁面的詳細(xì)設(shè)置,下面的示例將介紹通過Java編程來對PDF頁面進(jìn)行個性化設(shè)置的方法,包括設(shè)置頁面大小、頁邊距、紙張方向、頁面旋轉(zhuǎn)等,需要的朋友可以參考下2019-07-07SpringBoot + thymeleaf 實現(xiàn)讀取視頻列表并播放視頻功能
這篇文章主要介紹了SpringBoot + thymeleaf 實現(xiàn)讀取視頻列表并播放視頻功能,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-04-04Java集合基礎(chǔ)知識 List/Set/Map詳解
這篇文章主要介紹了Java集合基礎(chǔ)知識 List/Set/Map,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03Java String類簡單用法實戰(zhàn)示例【字符串輸出、比較】
這篇文章主要介紹了Java String類簡單用法,結(jié)合具體實例形式分析了Java使用String類實現(xiàn)字符串的輸出和比較功能相關(guān)操作技巧,需要的朋友可以參考下2019-07-07