更新時(shí)間:2020-07-23 16:00:40 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2427次
在輸出數(shù)字時(shí),有時(shí)需要給數(shù)字配上單位,有時(shí)需要數(shù)字具有一定的精度,也有時(shí)需要用科學(xué)計(jì)數(shù)法表示數(shù)字。
關(guān)鍵技術(shù)剖析:
v java.text.DecimalFormat類專門用于格式化數(shù)字。
v 需要為DecimalFormat提供格式化模式Pattern。通過(guò)構(gòu)造方法或者DecimalFormat的applyPattern方法設(shè)置模式。Pattern的類型為字符串。
v 調(diào)用DecimalFormat的format實(shí)例方法,參數(shù)為待格式化的數(shù)字,該方法使用DecimalFormat對(duì)象的pattern對(duì)參數(shù)進(jìn)行格式化。
import java.text.DecimalFormat;
public class TestDecimalFormat {
public static void main(String[] args) {
DecimalFormat df = new DecimalFormat();
double data = 1203.405607809;
System.out.println("格式化之前:" + data);
String pattern = "0.0";//1203.4
df.applyPattern(pattern);
System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));
// 可以在模式后加上自己想要的任何字符,比如單位
pattern = "00000000.000kg";//00001203.406kg
df.applyPattern(pattern);
System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));
//#表示如果存在就顯示字符,如果不存在就不顯示,只能用在模式的兩頭
pattern = "##000.000kg";//1203.406kg
df.applyPattern(pattern);
System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));
//-表示輸出為負(fù)數(shù),必須放在最前面
pattern = "-000.000";//-1203.406
df.applyPattern(pattern);
System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));
//,是分組分隔符 :輸出結(jié)果12,03.41
pattern = "-0,00.0#";//-12,03.41
df.applyPattern(pattern);
System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));
//E表示輸出為指數(shù),”E“之前的字符串是底數(shù)的格式,之后的是指數(shù)的格式。
pattern = "0.00E000";//1.20E003
df.applyPattern(pattern);
System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));
//%表示乘以100并顯示為百分?jǐn)?shù),要放在最后
pattern = "0.00%";//120340.56%
df.applyPattern(pattern);
System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));
//"\u2030"表示乘以1000并顯示為千分?jǐn)?shù),要放在最后
pattern = "0.00\u2030";//203405.61‰
df.applyPattern(pattern);
System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));
//"\u00A4"貨幣符號(hào),要放在兩端*****1203.41¥
pattern = "0.00\u00A4";//1203.41¥
df.applyPattern(pattern);
System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));
//'用于在前綴或或后綴中為特殊字符加引號(hào),要?jiǎng)?chuàng)建單引號(hào)本身,請(qǐng)連續(xù)使用兩個(gè)單引號(hào):"# o''clock"。
pattern = "'#'#" ;//#1203
// pattern = "'#'" ;//#1203
df.applyPattern(pattern);
System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));
pattern = "# o''clock" ;//1203 o'clock
df.applyPattern(pattern);
System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));
//''放在中間或后面單引號(hào)就顯示在最后,放在最前面單引號(hào)就顯示在最前
// pattern = "# o''clock.000" ;//1203.406 o'clock
// pattern = "# .000o''clock";//1203.406 o'clock
// pattern = "# .000''";//1203.406 '
// pattern = "# .''000";//1203.406 '
pattern = "''# .000";//'1203.406
df.applyPattern(pattern);
System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));
}
}
輸出結(jié)果為:
格式化之前:1203.405607809
采用0.0模式格式化后:1203.4
采用00000000.000kg模式格式化后:00001203.406kg
采用##000.000kg模式格式化后:1203.406kg
采用-000.000模式格式化后:-1203.406
采用-0,00.0#模式格式化后:-12,03.41
采用0.00E000模式格式化后:1.20E003
采用0.00%模式格式化后:120340.56%
采用0.00‰模式格式化后:1203405.61‰
采用0.00¤模式格式化后:1203.41¥
采用'#'#模式格式化后:#1203
采用# o''clock模式格式化后:1203 o'clock
采用''# .000模式格式化后:'1203.406
分析:
2 可以在java.text.DecimalForm的構(gòu)造方法中制定模式(pattern),也可以使用applyPattern方法設(shè)置格式模式。
2 格式模式有特定的規(guī)則,不太的字符代表不同的意思,在使用中需要自己設(shè)計(jì)格式的模式。常用的模式有:“.”、“-”、“#”、“%”、“\u2030”、“,”、“E”、“0”。關(guān)于這些模式的具體含義在程序注釋中有詳細(xì)的介紹,也可以參閱JDK的幫助文檔。
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“編程基礎(chǔ)分享:Java中浮點(diǎn)型的格式輸出”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743