<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 馬嘉楠 閱讀(2310) 評論(0)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: fc2成年免费共享视频网站| 18禁亚洲深夜福利人口| 久久久精品午夜免费不卡| 国产精品亚洲二区在线观看| 在线看亚洲十八禁网站| 国产精品成人四虎免费视频| 亚洲av无码成人影院一区| 国产又大又长又粗又硬的免费视频| 亚洲成av人片在线天堂无| 国产伦精品一区二区三区免费迷 | 久久精品国产亚洲香蕉| 国产性生大片免费观看性| 亚洲国产精品无码专区在线观看| 国产综合免费精品久久久| 亚洲国产成人私人影院| 国产成人免费午夜在线观看| 亚洲日韩国产精品乱-久| 日韩精品视频免费网址| 黄色免费网站在线看| 国产亚洲AV无码AV男人的天堂| 亚洲精品高清在线| GOGOGO高清免费看韩国| 亚洲免费视频在线观看| 毛片免费观看网址| 美女扒开尿口给男人爽免费视频 | 麻豆国产入口在线观看免费| 亚洲VA中文字幕无码毛片| 99久久99久久免费精品小说| tom影院亚洲国产一区二区| 国产女高清在线看免费观看| 国产在线精品观看免费观看| 亚洲精品国产成人| 免费一级毛片在线播放| 久草免费福利视频| 亚洲欧美成人av在线观看| 免费AA片少妇人AA片直播| 亚洲成人午夜在线| 国产精品免费播放| 久久永久免费人妻精品| 国产aⅴ无码专区亚洲av| 大地资源在线观看免费高清|