NumberFormat类
二、NumberFormat子類(lèi):
NumberFormat是所有數(shù)字格式的抽象基類(lèi)。此類(lèi)提供格式化和解析數(shù)字的接口,提供了確定哪些語(yǔ)言環(huán)境具有數(shù)字格式以及它們的名稱(chēng)是什么的方法,提供了格式化和解析任何區(qū)域設(shè)置的數(shù)字。程序代碼可以完全獨(dú)立于小數(shù)點(diǎn),千位分隔符的區(qū)域設(shè)置約定,甚至是使用的特定十進(jìn)制數(shù)字,或者數(shù)字格式是否為十進(jìn)制。NumberFormat類(lèi)中最重要的兩個(gè)方法是format和parse,簡(jiǎn)單來(lái)說(shuō)format(是將數(shù)字Number類(lèi)的對(duì)象轉(zhuǎn)化為用戶所能看懂的字符串形式如貨幣¥100 )parse(是將用戶所能看懂的字符串形式的數(shù)字/貨幣/百分比轉(zhuǎn)化為數(shù)字Number類(lèi))
format(Object number, StringBuffer toAppendTo, FieldPosition pos)格式化數(shù)字并將結(jié)果文本附加到給定的字符串緩沖區(qū)。 format(long number, StringBuffer toAppendTo, FieldPosition pos)格式化long型數(shù)字生成字符串 format(double number, StringBuffer toAppendTo, FieldPosition pos)格式化double型數(shù)字生成字符串 format(double number) format(long number) //number - 要格式化的數(shù)字。 //toAppendTo - StringBuffer要附加格式化文本的內(nèi)容 //pos - 輸入時(shí):如果需要,可以使用對(duì)齊字段。輸出時(shí):對(duì)齊字段的偏移量。 parseObject(String source, ParsePosition pos)解析字符串中的文本以生成一個(gè)Number。 parse(String source)解析字符串中的文本以生成數(shù)字 parse(String source, ParsePosition pos)如果可能,返回Long,否則返回Double。如果設(shè)置了IntegerOnly,將停止在小數(shù)點(diǎn) //source - 要解析的數(shù)字字符串,其中一部分應(yīng)該被解析。 //pos - ParsePosition具有索引和錯(cuò)誤索引信息的對(duì)象.輸入時(shí),開(kāi)始解析的位置; on output,解析終止的位置,或解析失敗時(shí)的起始位置。常用的靜態(tài)工廠方法:
(1)getInstance()方法,返回默認(rèn)語(yǔ)言環(huán)境下的通用數(shù)字格式
? ? ? ? ??getInstance(Locale inlocale)方法,返回指定語(yǔ)言環(huán)境下的通用數(shù)字格式
(2)getNumberInstance()方法,返回默認(rèn)語(yǔ)言環(huán)境下的通用數(shù)字格式
? ? ? ? ??getNumberInstance(Locale inlocale)方法,返回指定語(yǔ)言環(huán)境下的通用數(shù)字格式
(3)getIntegerInstance()方法,返回默認(rèn)語(yǔ)言環(huán)境下的整數(shù)格式,若為小數(shù),則四舍五入
? ? ? ? ??getIntegerInstance(Locale inlocale)方法,返回指定語(yǔ)言環(huán)境下的整數(shù)格式,若為小數(shù),則四舍五入
(4)getCurrencyInstance()方法,返回默認(rèn)語(yǔ)言環(huán)境下的貨幣格式
? ? ? ? ??getCurrencyInstance(Locale inlocale)方法,返回指定語(yǔ)言環(huán)境下的貨幣格式
(5)getPercentInstance()方法,返回默認(rèn)語(yǔ)言環(huán)境下的百分比的數(shù)值格式
? ? ? ? ??getPercentInstance(Locale inlocale)方法,返回指定語(yǔ)言環(huán)境下的百分比的數(shù)值格式
(6)getMaxinumIntegerDigits()方法,返回?cái)?shù)字整數(shù)部分允許的最大位數(shù)
? ? ? ? ??setMaxinumIntegerDigits(int newValue)方法,設(shè)置數(shù)字整數(shù)部分允許的最大位數(shù)
(7)getMininumIntegerDigits()方法,返回?cái)?shù)字整數(shù)部分允許的最小位數(shù)
? ?setMininumIntegerDigits(int newValue)方法,設(shè)置數(shù)字整數(shù)部分允許的最小位數(shù)?
(8)getMaxinumFractionDigits()方法,返回?cái)?shù)字小數(shù)部分允許的最大位數(shù)
? ?setMaxinumFractionDigits(int newValue)方法,設(shè)置數(shù)字小數(shù)部分允許的最大位數(shù)
(9)getMininumFractionDigits()方法,返回?cái)?shù)字小數(shù)部分允許的最小位數(shù)
? ?setMininumFractionDigits(int newValue)方法,設(shè)置數(shù)字小數(shù)部分允許的最小位數(shù)
更多詳細(xì)方法可以參照https://docs.oracle.com/javase/6/docs/api/java/text/NumberFormat.html
實(shí)例:(一般通過(guò)get...創(chuàng)建對(duì)象)
package codeNumberFormat; import java.text.*; import java.util.*; public class ceshi {public static void main(String[] args)throws Exception {// TODO Auto-generated method stubdouble num=120.8;NumberFormat dou=NumberFormat.getIntegerInstance();System.out.println(dou.format(num));int price = 100;NumberFormat currency = NumberFormat.getCurrencyInstance(Locale.CHINA);System.out.println(currency.format(price));currency = NumberFormat.getCurrencyInstance(Locale.US);System.out.println(currency.format(price));try {String str = "$52.00";//注意這里只能用$因?yàn)榍懊孀詈笠淮螌urrency設(shè)置為了US的語(yǔ)言環(huán)境Number n = currency.parse(str);System.out.println(n);//若要輸出double格式,則System.out.println(n.doubleValue());}catch (ParseException e) { System.out.println(e.getMessage()); } double d = 0.72;currency = NumberFormat.getPercentInstance();System.out.println(currency.format(d));//50%}} 運(yùn)行結(jié)果: 121 ¥100.00 $100.00 52 72%另外介紹一下NumbrFormat的兩個(gè)子類(lèi)ChoiceFormat類(lèi)和DecimalFormat類(lèi)
ChoiceFormat類(lèi)
DecimalFormat類(lèi)
?
總結(jié)
以上是生活随笔為你收集整理的NumberFormat类的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: oracle出错如何备份数据,备份ora
- 下一篇: 鸿蒙和安卓,到底有什么区别?