【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 对象当前状态的模式字符串。 |
