日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Java數(shù)字、貨幣值和百分?jǐn)?shù)等的格式化處理

 david.zhang 2006-07-19

Java數(shù)字、貨幣值和百分?jǐn)?shù)等的格式化處理                                          

如果我們用下列語句輸出一個數(shù)

System.out.println(123456.789);

將會在Console看到輸出

123456.789

那么如何得到123,456.789這種格式化的輸出呢?這里就需要用到java.text.Format這個類。不僅是數(shù)字,它還提供了貨幣值和百分?jǐn)?shù)的格式化輸出,比如0.58的百分?jǐn)?shù)輸出形式是58%。要獲得本地的默認(rèn)格式,可以用下列方法獲得

NumberFormat.getNumberInstance()


NumberFormat.getCurrencyInstance()


NumberFormat.getOPercentInstance()

而要獲得某個國家或地區(qū)的具體格式,可以使用參數(shù)Local.XXX,Locale.GERMANYLocale.UK。

NumberFormat formatter = NumberFormat.getNumberInstance(Locale.GERMANY);

范例

 

import java.text.NumberFormat;
import java.util.Locale;

public class FormatTest {

    public static void main(String args[]) {

        // 不使用格式化輸出數(shù)
        double d = 10000.0 / 3.0;
        System.out.println("無格式化輸出:" + d);

        // 使用本地默認(rèn)格式輸出數(shù)
        NumberFormat numberFormat = NumberFormat.getNumberInstance();
        //numberFormat.setMaximumFractionDigits(4);
        //numberFormat.setMinimumIntegerDigits(6);
        String numberString = numberFormat.format(d);
        System.out.println("本地默認(rèn)格式輸出數(shù):" + numberString);

        // 使用本地默認(rèn)格式輸出貨幣值
        NumberFormat currencyFormat = NumberFormat.getCurrencyInstance();
        System.out.println("本地默認(rèn)格式輸出貨幣值:" + currencyFormat.format(d));

        // 使用本地默認(rèn)格式輸出百分?jǐn)?shù)
        NumberFormat percentFormat = NumberFormat.getPercentInstance();
        System.out.println("本地默認(rèn)格式輸出百分?jǐn)?shù):" + percentFormat.format(d));

        // 在不同的國家和地區(qū)數(shù)字表示的格式也有區(qū)別。如德國
        // 使用德國的格式化輸出數(shù)
        NumberFormat numberFormatG = NumberFormat
                .getNumberInstance(Locale.GERMANY);
        System.out.println("德國數(shù)字輸出形式:" + numberFormatG.format(d));

        // 使用德國貨幣輸出形式
        NumberFormat currencyFormatG = NumberFormat
                .getCurrencyInstance(Locale.GERMANY);
        System.out.println("德國貨幣輸出形式:" + currencyFormatG.format(d));

        // 使用美國貨幣輸出形式
        NumberFormat currencyFormatA = NumberFormat
                .getCurrencyInstance(Locale.US);
        System.out.println("美國貨幣輸出形式:" + currencyFormatA.format(d));

        // 使用德國百分?jǐn)?shù)輸出形式
        NumberFormat percentFormatG = NumberFormat
                .getPercentInstance(Locale.GERMANY);
        System.out.println("德國百分?jǐn)?shù)輸出形式:" + percentFormatG.format(d));
        
        System.exit(0);
    }
}

 


程序輸出

<!--[if !vml]--><!--[endif]-->

由于歐元符號無法在此Console輸出,所以顯示?

可以指定顯示的最多(或最少)整數(shù)位和小數(shù)位。如

double d = 10000.0 / 3.0;


NumberFormat numberFormat = NumberFormat.getNumberInstance();


numberFormat.setMaximumFractionDigits(4);


numberFormat.setMinimumIntegerDigits(6);


String numberString = numberFormat.format(d);


System.out.println(numberString);

輸出:


003,333.3333。整數(shù)位不夠的補(bǔ)零,小數(shù)截去部分四舍五入。

    也可以利用NumberFormat的一個子類DecimalFormat來指定輸出格式。


DecimalFormat decimalFormat = new DecimalFormat("######.0000");


String s = decimalFormat.format(d);

和前面一樣,顯示六個整數(shù)位和4個小數(shù)位。

下面對格式化的數(shù)字進(jìn)行解析。

import java.util.Locale;
import java.text.NumberFormat;
import java.text.ParseException;

public class ParseFormat {

    public static void main(String args[]) {

        // 本地格式的解析
        NumberFormat numberFormat1 = NumberFormat.getNumberInstance();
        Number numb1 = null;
        try {
            numb1 = numberFormat1.parse("33,333.33");
        } catch (ParseException e1) {
            System.err.println(e1);
        }
        System.out.println(numb1);
       
       
        // 以德國格式解析
        NumberFormat numberFormat2 = NumberFormat
                .getNumberInstance(Locale.GERMAN);
        Number numb2 = null;
        try {
            numb2 = numberFormat2.parse("33,333.33");
        } catch (ParseException e2) {
            System.err.println(e2);
        }
        System.out.println(numb2);
       
        System.exit(0);
    }
}

程序輸出:


33333.33


33.333

    同樣一種格式33,333.33,有人將之理解為33333.33,也有人認(rèn)為它是33.333,軟件國際化的重要性可見一斑。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多