java.lang.Object
java.text.Format
java.text.NumberFormat
java.text.DecimalFormat
java.text.Format
java.text.NumberFormat
java.text.DecimalFormat
DecimalFormat
是 NumberFormat
的一个具体子类,用于格式化十进制数字。
public class DecimalFormat extends NumberFormat
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); }
简单的示例:
/**
* @(#)DEMO.java
*DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。
*
* @author
* @version 1.00 2016/4/5
*/
import java.text.DecimalFormat ;
public class DEMO {
static public void customFormat(String pattern, double value ) {
DecimalFormat myFormatter = new DecimalFormat(pattern);
String output = myFormatter.format(value);
System.out.println(value + " " + pattern + " " + output);
}
static public void main(String[] args) {
customFormat("###,###.###", 123456.789);
customFormat("###.##", 123456.789);
customFormat("000000.000", 123.78);
customFormat("$###,###.###", 12345.67);
//对字符串改成5进制的数字
String base5String = "230";
int a = Integer.valueOf(base5String,10);//第二位10表示10进制,5则表示5进制
System.out.println (a);
}
}
输出:--------------------Configuration: <Default>--------------------
123456.789 ###,###.### 123,456.789
123456.789 ###.## 123456.79
123.78 000000.000 000123.780
12345.67 $###,###.### $12,345.67
230
Process completed.