<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Oo緣來是你oO


    posts - 120,comments - 125,trackbacks - 0

    作者:DotJox
    轉自:csdn
    整理:馬嘉楠

    如果我們用下列語句輸出一個數

    ----------------------------------------

    System.out.println(123456.789);

    ----------------------------------------

    將會在Console看到輸出

    ----------------------------------------

    123456.789

    ----------------------------------------

    那么如何得到“123,456.789”這種格式化的輸出呢?

    這里就需要用到java.text.Format這個類。

    不僅是數字,它還提供了貨幣值和百分數的格式化輸出,例如0.58的百分數輸出形式是58%。

    要獲得本地的默認格式,可以用下列方法獲得:

    NumberFormat.getNumberInstance()
    NumberFormat.getCurrencyInstance()
    NumberFormat.getOpercentInstance()

    而要獲得某個國家或地區的具體格式,可以使用參數Local.XXX。例如,Local.GERMANY,Local.UK。

    范例:

    ---------------------------------------------------------------

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

    public class FormatTest{
    ??? public static void main(String args[]){?

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

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

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

    ?????? //使用本地默認格式輸出百分數
    ???????? NumberFormat percentFormat = NumberFormat.getPercentInstance();
    ?????? System.out.println("本地默認格式輸出百分數:" + percentFormat.format(d));?

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

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

    ???????? //使用美國貨幣輸出形式
    ?????????? NumberFormat currencyFormatA = NumberFormat.getCurrencyInstance(Local.US);
    ???????? System.out.println("美國貨幣輸出形式:" + currencyFormatG.format(d));?
    ???????
    ???????? //使用德國百分數輸出形式?
    ???????????NumberFormat percentFormatG = NumberFormat.getPercentInstance(Local.GERMANY);
    ???????? System.out.println("德國百分數輸出形式:" + percentFormatG .format(d));

    ???????? System.exit(0);
    ???? }
    ?}
    ?
    ---------------------------------------------------------------------------------

    程序輸出

    ---------------------------------------

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

    ---------------------------------------

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

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

    ---------------------------------------

    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

    ---------------------------------------

    整數位不夠的補零,小數截去部分四舍五入。

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

    ---------------------------------------

    DecimalFormat decimalFormat = new DecimalFormat("######.0000");
    String s = decimalFormat.format(d);

    ---------------------------------------

    和前面一樣,顯示6個整數位和4個小數位。

    下面對格式化的數字進行解析。

    ---------------------------------------

    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(number1);

    ????? //以德國格式解析?
    ????????NumberFormat numberFormat2 = NumberFormat.getNumberInstance(Locale.GERMANY);
    ??????? Number numb2 = null;?
    ?
    ??????? try
    ?????? {
    ??????????? numb2 = numberFormat2.parse("33,333.33");
    ?????? }
    ?????? catch(ParseException e2)
    ?????? {
    ??????????? System.err.println(e2);
    ?????? }
    ?????? System.out.println(number2);

    ?????? System.exit(0);
    ??? }
    }
    ?
    ---------------------------------

    程序輸出:

    ---------------------------------

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



    馬嘉楠
    jianan.ma@gmail.com

    posted on 2006-07-18 23:47 馬嘉楠 閱讀(2308) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 91免费在线视频| 在线观看成人免费| 最新国产AV无码专区亚洲| 久久夜色精品国产亚洲AV动态图| 黄色免费网址大全| 国产精品亚洲不卡一区二区三区| 老司机午夜在线视频免费观| 亚洲国产精品成人一区| 中文字幕亚洲精品资源网| 无码AV片在线观看免费| 亚洲av日韩av不卡在线观看| 51精品视频免费国产专区| 亚洲女人18毛片水真多| 最近中文字幕mv免费高清视频7| 国产日产亚洲系列| 不卡视频免费在线观看| 亚洲国产精品lv| 青娱乐免费在线视频| 亚洲综合精品成人| 波多野结衣中文一区二区免费 | 国产在线精品一区免费香蕉| 国产国拍精品亚洲AV片| 男女午夜24式免费视频| 亚洲高清偷拍一区二区三区| 国产精品成人啪精品视频免费| 亚洲综合国产一区二区三区| 亚洲精品免费视频| 国产99在线|亚洲| 色欲色香天天天综合网站免费| 亚洲国产成人精品电影| 国产免费怕怕免费视频观看| 国产精品成人免费观看| 亚洲国产超清无码专区| 国产亚洲福利一区二区免费看| 中文字幕不卡免费视频| 亚洲国产精品乱码在线观看97| 免费看美女让人桶尿口| 中文字幕久无码免费久久| 亚洲中文无码av永久| 亚洲日韩在线观看免费视频| 久久久高清日本道免费观看|