Java中的DecimalFormat用法解析
DecimalFormat用法
在項(xiàng)目中遇到需要維護(hù)層級(jí)關(guān)系的數(shù)據(jù),在parentid里遇到這樣一個(gè)需求,需要在一個(gè)數(shù)的前面加0,使這個(gè)字符串保持固定的長度,這樣就遇到了這個(gè)類——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
//以百分比方式計(jì)數(shù),并取兩位小數(shù)
System.out.println(new DecimalFormat("#.##%").format(pi));//1314.16%
System.out.println(DecimalFormat.getCurrencyInstance().format(pi));//¥13.14
long c=299792458;//光速
//每三位以逗號(hào)進(jìn)行分隔
System.out.println(new DecimalFormat(",###").format(c));//299,792,458
在使用的時(shí)候我還發(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ù),沒有,我給你加上;多了,就四舍五入第三個(gè)小數(shù) .## 標(biāo)示最終結(jié)果最多有兩位小數(shù) 一位或者沒有都可以 多了同樣四舍五入第三位
2、整數(shù)部分 0 和 # 當(dāng)整數(shù)部分為0時(shí) 比如 0.1 # 此時(shí)認(rèn)為整數(shù)部分不存在,所以不寫 0 認(rèn)為沒有至少也得一位,寫上0 這跟上面第一部分的表現(xiàn)是一致的:# 有就寫,沒有就不寫 ;0 必須有 沒有補(bǔ)0
3、整數(shù)部分有多位時(shí): 2 20 200 由上面的結(jié)果可以看出 0和#對(duì)整數(shù)部分多位時(shí)的處理是一致的 就是有幾位寫多少位 這跟上面兩部分的表現(xiàn)是不一致的 在有多位時(shí),0和#都沒有匹配位數(shù),而是有多少寫多少
到此這篇關(guān)于Java中的DecimalFormat用法解析的文章就介紹到這了,更多相關(guān)DecimalFormat用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot 統(tǒng)一公共返回類的實(shí)現(xiàn)
本文主要介紹了SpringBoot 統(tǒng)一公共返回類的實(shí)現(xiàn),配置后臺(tái)的統(tǒng)一公共返回類,這樣做目的是為了統(tǒng)一返回信息,文中示例代碼介紹的很詳細(xì),感興趣的可以了解一下2022-01-01
@SpringBootConfiguration重復(fù)加載報(bào)錯(cuò)問題解決
@SpringBootApplication?注解的?exclude?屬性用于排除特定的自動(dòng)配置類,而不是用于排除主配置類本身,因此,不能通過?exclude?屬性來排除主配置類的加載,這篇文章主要介紹了@SpringBootConfiguration重復(fù)加載報(bào)錯(cuò),需要的朋友可以參考下2024-08-08
關(guān)于Java中的try-with-resources語句
這篇文章主要介紹了關(guān)于Java中的try-with-resources語句,try-with-resources是Java中的環(huán)繞語句之一,旨在減輕開發(fā)人員釋放try塊中使用的資源的義務(wù),需要的朋友可以參考下2023-05-05
Spring?AOT優(yōu)化轉(zhuǎn)換的使用原理詳解
這篇文章主要介紹了Spring?AOT優(yōu)化轉(zhuǎn)換的使用原理,Spring?AOT是一種在構(gòu)建時(shí)對(duì)Spring應(yīng)用進(jìn)行優(yōu)化的技術(shù),主要為GraalVM原生鏡像生成配置,同時(shí)提升傳統(tǒng)JVM的啟動(dòng)性能,需要的朋友可以參考下2025-10-10
從原理到最佳實(shí)踐詳解SpringBoot如何實(shí)現(xiàn)優(yōu)雅停機(jī)
優(yōu)雅停機(jī)在現(xiàn)代微服務(wù)架構(gòu)中是非常重要的,它幫助我們確保在應(yīng)用程序停止時(shí),不會(huì)中斷正在進(jìn)行的請(qǐng)求或?qū)е聰?shù)據(jù)丟失,下面我們就來看看SpringBoot實(shí)現(xiàn)優(yōu)雅停機(jī)的具體方法吧2026-03-03
SpringBoot整合Minio實(shí)現(xiàn)圖片上傳功能
Minio是一款開源的對(duì)象存儲(chǔ)服務(wù)器,它提供了一個(gè)云原生的、高性能的、易于擴(kuò)展的文件系統(tǒng)接口,用于存儲(chǔ)和檢索任意大小的數(shù)據(jù),本文將給大家介紹SpringBoot整合Minio實(shí)現(xiàn)圖片上傳功能,需要的朋友可以參考下2024-08-08
java實(shí)現(xiàn)數(shù)字轉(zhuǎn)大寫的方法
這篇文章主要介紹了 java實(shí)現(xiàn)數(shù)字轉(zhuǎn)大寫的方法的相關(guān)資料,希望通過本文能幫助到大家,讓大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下2017-10-10
javaweb實(shí)戰(zhàn)之商城項(xiàng)目開發(fā)(二)
這篇文章主要針對(duì)javaweb商城項(xiàng)目開發(fā)進(jìn)行實(shí)戰(zhàn)演習(xí),利用mybatis創(chuàng)建DAO層,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-02-02

