关于数据格式化代码整理

import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;

/**
 * Created by R.W on 2016/3/1.
 */
public class SD extends FD {

    double f = 111231.5585;

    public void m1() {//111231.56
        BigDecimal bg = new BigDecimal(f);
        double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
        System.out.println(f1);
    }

    /**
     * DecimalFormat转换最简便
     */
    public void m2() {//111231.56
        DecimalFormat df = new DecimalFormat("#.00");
        System.out.println(df.format(f));
    }

    /**
     * String.format打印最简便
     */
    public void m3() {//111231.56
        System.out.println(String.format("%.2f", f));
    }

    public void m4() {//111,231.56
        NumberFormat nf = NumberFormat.getNumberInstance();
        nf.setMaximumFractionDigits(2);
        System.out.println(nf.format(f));
    }



}

import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.text.ParseException;

/**
 * Created by R.W on 2016/3/1.
 */
public class Main {

    static String snumber = "111,231.56";
    public static void main(String[] args) {
        SD f = new SD();
        f.m1();
        f.m2();
        f.m3();
        f.m4();

        m6(snumber);

        test();


        format("###,###.###",233789555774663.8489);
    }

    public static void m6(String snumber) {//111,231.56
        NumberFormat nf = NumberFormat.getNumberInstance();
        //方式一
//        double dd = 0;
//        try {
//            dd = (double) nf.parseObject(snumber);
//
//            float ff = (float) dd;
//
//            System.out.println(dd+"----------"+ff);
//        } catch (ParseException e) {
//            e.printStackTrace();
//        }

        //方式二
        Number number;
        try {
            number = (Number) nf.parseObject(snumber);

            //在进行转换成相应的数据类型
            float ff = number.floatValue();
            System.out.println(number+"----------"+ff);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }

    public static void test(){
        // TODO Auto-generated method stub
        Double myNumber=23323.3323232323;
        Double test=0.3434;
        //返回当前缺省语言环境的缺省数值格式。
        String myString = NumberFormat.getInstance().format(myNumber);
        System.out.println(myString);//23,323.332
        //getCurrencyInstance()返回当前缺省语言环境的通用格式
        myString = NumberFormat.getCurrencyInstance().format(myNumber);
        System.out.println(myString);//23,323.33
        //getNumberInstance() 返回当前缺省语言环境的通用数值格式。
        myString = NumberFormat.getNumberInstance().format(myNumber);
        System.out.println(myString);//23,323.332

        //getPercentInstance()  返回当前缺省语言环境的百分比格式。
        myString = NumberFormat.getPercentInstance().format(test);
        System.out.println(myString);//34%

        //setMaximumFractionDigits(int) 设置数值的小数部分允许的最大位数。
        //setMaximumIntegerDigits(int)  设置数值的整数部分允许的最大位数。
        //setMinimumFractionDigits(int) 设置数值的小数部分允许的最小位数。
        //setMinimumIntegerDigits(int)  设置数值的整数部分允许的最小位数.
        NumberFormat format = NumberFormat.getInstance();
        format.setMinimumFractionDigits( 3 );
        format.setMaximumFractionDigits(5);
        format.setMaximumIntegerDigits( 10 );
        format.setMinimumIntegerDigits(0);

        System.out.println(format.format(2132323213.23266666666));//2,132,323,213.23267
    }

    public static void format(String pattern,double value){
        // 此方法专门用于完成数字的格式化显示
        DecimalFormat df = null ;           // 声明一个DecimalFormat类的对象
        df = new DecimalFormat(pattern) ;   // 实例化对象,传入模板

//        df.setMinimumFractionDigits( 3 );
//        df.setMaximumFractionDigits(5);
//        df.setMaximumIntegerDigits( 10 );
//        df.setMinimumIntegerDigits(0);

        String str = df.format(value) ;     // 格式化数字
        System.out.println("使用" + pattern
                + "格式化数字" + value + "" + str) ;

//        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) ;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值