数字的格式化

Java 中数字格式的处理 . 主要是用到抽象类 java.text.NumberFormat 和它的子类 java.text..DecimalFormat. 具体的细节可以查看 API 文档,总结一下数字格式化的使用方法:     

为了格式化当前语言环境的数字,要使用一个工厂类方法:

myString = NumberFormat.getInstance().format(myNumber);

要格式化不同语言环境的日期,可在 getInstance 的调用中指定它:

NumberFormat nf = NumberFormat.getInstance(Locale.FRENCH);

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对象,必须提供给它提供一个格式化的模式(pattern)
String pattern = …
DecimalFormat df = new DecimalFormat(pattern);
或者:
DecimalFormat df = new DecimalFormat();
df. applyPattern(pattern);
然后就调用它的format方法就行了。下面是一些模式运用的例子:
//  The 0 symbol shows a digit or 0 if no digit present
    NumberFormat formatter  =   new  DecimalFormat( " 000000 " );
    String s 
=  formatter.format( - 1234.567 );   //  -001235
    
//  notice that the number was rounded up
  
    
//  The # symbol shows a digit or nothing if no digit present
    formatter  =   new  DecimalFormat( " ## " );
    s 
=  formatter.format( - 1234.567 );          //  -1235
    s  =  formatter.format( 0 );                  //  0
    formatter  =   new  DecimalFormat( " ##00 " );
    s 
=  formatter.format( 0 );                  //  00
    
    
//  The . symbol indicates the decimal point
    formatter  =   new  DecimalFormat( " .00 " );
    s 
=  formatter.format( - . 567 );              //  -.57
    formatter  =   new  DecimalFormat( " 0.00 " );
    s 
=  formatter.format( - . 567 );              //  -0.57
    formatter  =   new  DecimalFormat( " #.# " );
    s 
=  formatter.format( - 1234.567 );          //  -1234.6
    formatter  =   new  DecimalFormat( " #.###### " );
    s 
=  formatter.format( - 1234.567 );          //  -1234.567
    formatter  =   new  DecimalFormat( " .###### " );
    s 
=  formatter.format( - 1234.567 );          //  -1234.567
    formatter  =   new  DecimalFormat( " #.000000 " );
    s 
=  formatter.format( - 1234.567 );          //  -1234.567000
    
    
    
//  The , symbol is used to group numbers
    formatter  =   new  DecimalFormat( " #,###,### " );
    s 
=  formatter.format( - 1234.567 );          //  -1,235
    s  =  formatter.format( - 1234567.890 );       //  -1,234,568
    
    
//  The ; symbol is used to specify an alternate pattern for negative values
    formatter  =   new  DecimalFormat( " #;(#) " );
    s 
=  formatter.format( - 1234.567 );          //  (1235)
    
    
//  The ' symbol is used to quote literal symbols
    formatter  =   new  DecimalFormat( " '#'# " );
    s 
=  formatter.format( - 1234.567 );          //  -#1235
    formatter  =   new  DecimalFormat( " 'abc'# " );
    s 
=  formatter.format( - 1234.567 );          //  -abc1235

你可能感兴趣的:(设计模式,F#,UP)