NumberFormat类
二、NumberFormat子類:
NumberFormat是所有數(shù)字格式的抽象基類。此類提供格式化和解析數(shù)字的接口,提供了確定哪些語言環(huán)境具有數(shù)字格式以及它們的名稱是什么的方法,提供了格式化和解析任何區(qū)域設置的數(shù)字。程序代碼可以完全獨立于小數(shù)點,千位分隔符的區(qū)域設置約定,甚至是使用的特定十進制數(shù)字,或者數(shù)字格式是否為十進制。NumberFormat類中最重要的兩個方法是format和parse,簡單來說format(是將數(shù)字Number類的對象轉(zhuǎn)化為用戶所能看懂的字符串形式如貨幣¥100 )parse(是將用戶所能看懂的字符串形式的數(shù)字/貨幣/百分比轉(zhuǎn)化為數(shù)字Number類)
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 - 輸入時:如果需要,可以使用對齊字段。輸出時:對齊字段的偏移量。 parseObject(String source, ParsePosition pos)解析字符串中的文本以生成一個Number。 parse(String source)解析字符串中的文本以生成數(shù)字 parse(String source, ParsePosition pos)如果可能,返回Long,否則返回Double。如果設置了IntegerOnly,將停止在小數(shù)點 //source - 要解析的數(shù)字字符串,其中一部分應該被解析。 //pos - ParsePosition具有索引和錯誤索引信息的對象.輸入時,開始解析的位置; on output,解析終止的位置,或解析失敗時的起始位置。常用的靜態(tài)工廠方法:
(1)getInstance()方法,返回默認語言環(huán)境下的通用數(shù)字格式
? ? ? ? ??getInstance(Locale inlocale)方法,返回指定語言環(huán)境下的通用數(shù)字格式
(2)getNumberInstance()方法,返回默認語言環(huán)境下的通用數(shù)字格式
? ? ? ? ??getNumberInstance(Locale inlocale)方法,返回指定語言環(huán)境下的通用數(shù)字格式
(3)getIntegerInstance()方法,返回默認語言環(huán)境下的整數(shù)格式,若為小數(shù),則四舍五入
? ? ? ? ??getIntegerInstance(Locale inlocale)方法,返回指定語言環(huán)境下的整數(shù)格式,若為小數(shù),則四舍五入
(4)getCurrencyInstance()方法,返回默認語言環(huán)境下的貨幣格式
? ? ? ? ??getCurrencyInstance(Locale inlocale)方法,返回指定語言環(huán)境下的貨幣格式
(5)getPercentInstance()方法,返回默認語言環(huán)境下的百分比的數(shù)值格式
? ? ? ? ??getPercentInstance(Locale inlocale)方法,返回指定語言環(huán)境下的百分比的數(shù)值格式
(6)getMaxinumIntegerDigits()方法,返回數(shù)字整數(shù)部分允許的最大位數(shù)
? ? ? ? ??setMaxinumIntegerDigits(int newValue)方法,設置數(shù)字整數(shù)部分允許的最大位數(shù)
(7)getMininumIntegerDigits()方法,返回數(shù)字整數(shù)部分允許的最小位數(shù)
? ?setMininumIntegerDigits(int newValue)方法,設置數(shù)字整數(shù)部分允許的最小位數(shù)?
(8)getMaxinumFractionDigits()方法,返回數(shù)字小數(shù)部分允許的最大位數(shù)
? ?setMaxinumFractionDigits(int newValue)方法,設置數(shù)字小數(shù)部分允許的最大位數(shù)
(9)getMininumFractionDigits()方法,返回數(shù)字小數(shù)部分允許的最小位數(shù)
? ?setMininumFractionDigits(int newValue)方法,設置數(shù)字小數(shù)部分允許的最小位數(shù)
更多詳細方法可以參照https://docs.oracle.com/javase/6/docs/api/java/text/NumberFormat.html
實例:(一般通過get...創(chuàng)建對象)
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";//注意這里只能用$因為前面最后一次將currency設置為了US的語言環(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%}} 運行結(jié)果: 121 ¥100.00 $100.00 52 72%另外介紹一下NumbrFormat的兩個子類ChoiceFormat類和DecimalFormat類
ChoiceFormat類
DecimalFormat類
?
總結(jié)
以上是生活随笔為你收集整理的NumberFormat类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle出错如何备份数据,备份ora
- 下一篇: 鸿蒙和安卓,到底有什么区别?