【java】DecimalFormat 类
DecimalFormat
是 NumberFormat
的一个具体子类,用于格式化十进制数字。该类设计有各种功能,使其能够解析和格式化任意语言环境中的数,包括对西方语言、阿拉伯语和印度语数字的支持。它还支持不同类型的数,包括整数 (123)、定点数 (123.4)、科学记数法表示的数 (1.23E4)、百分数 (12%) 和金额 ($123)。所有这些内容都可以本地化。
要获取具体语言环境的 NumberFormat
(包括默认语言环境),可调用 NumberFormat
的某个工厂方法,如 getInstance()
。通常不直接调用 DecimalFormat
的构造方法,因为 NumberFormat
的工厂方法可能返回不同于 DecimalFormat
的子类。如果需要自定义格式对象,可执行:
NumberFormat f = NumberFormat.getInstance(loc); if (f instanceof DecimalFormat) { ((DecimalFormat) f).setDecimalSeparatorAlwaysShown(true); }
DecimalFormat
包含一个模式 和一组符号。可直接使用 applyPattern()
或间接使用 API 方法来设置模式。符号存储在 DecimalFormatSymbols
对象中。使用 NumberFormat
工厂方法时,可从已本地化的 ResourceBundle
中读取模式和符号。
方法摘要 | |
---|---|
void |
applyLocalizedPattern(String pattern) 将给定的模式应用于此 Format 对象。 |
void |
applyPattern(String pattern) 将给定的模式应用于此 Format 对象。 |
Object |
clone() 标准重写;没有语义上的变化。 |
boolean |
equals(Object obj) 重写 equals |
StringBuffer |
format(double number, StringBuffer result, FieldPosition fieldPosition) 格式化一个 double 值,以生成一个字符串。 |
StringBuffer |
format(long number, StringBuffer result, FieldPosition fieldPosition) 格式化一个 long 值,以生成一个字符串。 |
StringBuffer |
format(Object number, StringBuffer toAppendTo, FieldPosition pos) 格式化一个数,并将所得文本追加到给定的字符串缓冲区。 |
AttributedCharacterIterator |
formatToCharacterIterator(Object obj) 格式化一个 Object,以生成一个 AttributedCharacterIterator 。 |
Currency |
getCurrency() 获取格式化货币值时,此十进制格式使用的货币。 |
DecimalFormatSymbols |
getDecimalFormatSymbols() 返回小数格式符号的一个副本,通常程序员或用户不改变此副本。 |
int |
getGroupingSize() 返回分组大小。 |
int |
getMaximumFractionDigits() 获取某个数的小数部分中所允许的最大数字位数。 |
int |
getMaximumIntegerDigits() 获取某个数的整数部分中所允许的最大数字位数。 |
int |
getMinimumFractionDigits() 获取某个数的小数部分中所允许的最小数字位数。 |
int |
getMinimumIntegerDigits() 获取某个数的整数部分中所允许的最小数字位数。 |
int |
getMultiplier() 获取百分数、千分数和类似格式中使用的乘数。 |
String |
getNegativePrefix() 获取负数前缀。 |
String |
getNegativeSuffix() 获取负数后缀。 |
String |
getPositivePrefix() 获取正数前缀。 |
String |
getPositiveSuffix() 获取正数后缀。 |
RoundingMode |
getRoundingMode() 获取在此 DecimalFormat 中使用的 RoundingMode 。 |
int |
hashCode() 重写 hashCode |
boolean |
isDecimalSeparatorAlwaysShown() 允许获取整数中小数分隔符的行为。 |
boolean |
isParseBigDecimal() 返回 parse(java.lang.String, java.text.ParsePosition) 方法是否返回 BigDecimal 。 |
Number |
parse(String text, ParsePosition pos) 解析字符串中的文本,以生成一个 Number 。 |
void |
setCurrency(Currency currency) 设置格式化货币值时,此数字格式使用的货币。 |
void |
setDecimalFormatSymbols(DecimalFormatSymbols newSymbols) 设置小数格式符号,通常程序员或用户不改变此符号。 |
void |
setDecimalSeparatorAlwaysShown(boolean newValue) 允许设置整数中小数分隔符的行为。 |
void |
setGroupingSize(int newValue) 设置分组大小。 |
void |
setMaximumFractionDigits(int newValue) 设置某个数的小数部分中所允许的最大数字位数。 |
void |
setMaximumIntegerDigits(int newValue) 设置某个数字的整数部分中所允许的最大数字位数。 |
void |
setMinimumFractionDigits(int newValue) 设置某个数的小数部分中所允许的最小数字位数。 |
void |
setMinimumIntegerDigits(int newValue) 设置某个数字的整数部分中所允许的最小数字位数。 |
void |
setMultiplier(int newValue) 设置百分数、千分数和类似格式中使用的乘数。 |
void |
setNegativePrefix(String newValue) 设置负数前缀。 |
void |
setNegativeSuffix(String newValue) 设置负数后缀。 |
void |
setParseBigDecimal(boolean newValue) 设置 parse(java.lang.String, java.text.ParsePosition) 方法是否返回 BigDecimal 。 |
void |
setPositivePrefix(String newValue) 设置正数前缀。 |
void |
setPositiveSuffix(String newValue) 设置正数后缀。 |
void |
setRoundingMode(RoundingMode roundingMode) 设置在此 DecimalFormat 中使用的 RoundingMode 。 |
String |
toLocalizedPattern() 合成一个表示此 Format 对象当前状态的、已本地化的模式字符串。 |
String |
toPattern() 合成一个表示此 Format 对象当前状态的模式字符串。 |