Java常用类库----Math && Random && NumberFormat 类

Math 类

  表示数字操作,例如:平方根,四舍五入等

public class Test{
    public static void main(String args[]){
        // Math类中的方法都是静态方法,直接使用“类.方法名称()”的形式调用即可
        System.out.println("求平方根:" + Math.sqrt(9.0)) ;
        System.out.println("求两数的最大值:" + Math.max(10,30)) ;
        System.out.println("求两数的最小值:" + Math.min(10,30)) ;
        System.out.println("2的3次方:" + Math.pow(2,3)) ;
        System.out.println("四舍五入:" + Math.round(33.6)) ;
    }
};
View Code
求平方根:3.0
求两数的最大值:30
求两数的最小值:10
2的3次方:8.0
四舍五入:34

  以上代码在求四舍五入的时候实际上是将小数点之后的内容全部忽略掉。如果此时需要进行准确位数的四舍五入,则需要使用其他的类完成---BigDecimal

Random 类

  Random类的主要功能是产生随机数,可以产生一个指定范围的随机数。Random类是定义在java.util包中的类。

  如:生成10个随机数字,且数字不大于100:

import java.util.Random ;
public class Test{
    public static void main(String args[]){
        Random r = new Random() ;        // 实例化Random对象
        for(int i=0;i<10;i++){
            System.out.print(r.nextInt(100) + "\t") ;
        }
    }
};
View Code
2    85    85    29    43    21    60    99    36    68

NumberFormat 类

  NumberFormat表示数字的格式化类,即:可以按照本地的风格习惯进行数字的显示。

  

public abstract class NumberFormat extends Format

  public static Locale[] getAvailablesLocales()    返回所有语言环境的数组

  public static final NumberFormat getInstance()    返回当前默认语言环境的数字格式

  public static NumberFormat getInstance(Locale inLocale)    返回指定语言环境的数字格式

  public static final NumberFormat getCurrencyInstance()    返回当前默认环境的货币格式

  public static NumberFormat getCurrencyInstance(Locale inLocale)      返回指定语言环境的数字格式

 

  MessageFormat,DateFormat,NumberFormat是Format三个常用的子类,如果想要进一步完成一个好的国际化程序,则肯定需要同时使用这样三个类完成,根据不同的国家显示日期,或者显示货币的形式。

  此类在java.text包中。

import java.text.* ;
public class Test{
    public static void main(String args[]){
        NumberFormat nf = null ;        // 声明一个NumberFormat对象
        nf = NumberFormat.getInstance() ;    // 得到默认的数字格式化显示
        System.out.println("格式化之后的数字:" + nf.format(10000000)) ;
        System.out.println("格式化之后的数字:" + nf.format(1000.345)) ;
    }
};
View Code
格式化之后的数字:10,000,000
格式化之后的数字:1,000.345

DecimalFormat的基本使用

  DecimalFormat是Format的一个子类,主要的作用是用来格式化数字使用,当然,在格式化数字的时候要比直接使用NumberFormat更加方便,因为可以直接指定按用户自定义的方式进行格式化操作,与之前讲解的SimpleDateFormat类似,如果要想进行自定义格式化操作,则必须指定格式化操作的模板。

格式化模板

import java.text.* ;
class FormatDemo{
    public void format1(String pattern,double value){    // 此方法专门用于完成数字的格式化显示
        DecimalFormat df = null ;            // 声明一个DecimalFormat类的对象
        df = new DecimalFormat(pattern) ;    // 实例化对象,传入模板
        String str = df.format(value) ;        // 格式化数字
        System.out.println("使用" + pattern
            + "格式化数字" + value + ":" + str) ;
    }
};
public class Test{
    public static void main(String args[]){
        FormatDemo demo = new FormatDemo() ;    // 格式化对象的类
        demo.format1("###,###.###",111222.34567) ;
        demo.format1("000,000.000",11222.34567) ;
        demo.format1("###,###.###¥",111222.34567) ;
        demo.format1("000,000.000¥",11222.34567) ;
        demo.format1("##.###%",0.345678) ;
        demo.format1("00.###%",0.0345678) ;
        demo.format1("###.###\u2030",0.345678) ;
    }
};
View Code
使用###,###.###格式化数字111222.34567:111,222.346
使用000,000.000格式化数字11222.34567:011,222.346
使用###,###.###¥格式化数字111222.34567:111,222.346¥
使用000,000.000¥格式化数字11222.34567:011,222.346¥
使用##.###%格式化数字0.345678:34.568%
使用00.###%格式化数字0.0345678:03.457%
使用###.###‰格式化数字0.345678:345.678‰

 

总结:

NumberFormat完成的功能只是根据区域不同固定的数字显示格式

DecimalFormat是可以由用户自己指定其显示的形式,所以比较好用

posted @ 2015-04-07 15:50  闲来垂钓  阅读(285)  评论(0)    收藏  举报