<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)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 久久亚洲精品无码观看不卡| 国产婷婷成人久久Av免费高清 | 亚洲婷婷在线视频| 国产成人亚洲精品狼色在线| 麻豆国产入口在线观看免费 | 亚洲AV无码一区二区乱子伦| 亚洲第一页日韩专区| 成年女人18级毛片毛片免费| 久久免费看黄a级毛片| 成在人线av无码免费高潮喷水| 免费视频成人国产精品网站| 亚洲欧美日韩国产成人| 亚洲免费观看网站| 亚洲精品视频在线观看免费 | 免费人成视频在线观看网站| 国产免费A∨在线播放| 免费一级特黄特色大片| 亚洲色成人四虎在线观看| 亚洲av日韩av综合| 亚洲精品乱码久久久久久下载| 亚洲av成人无码久久精品| 中文亚洲AV片不卡在线观看| 亚洲免费视频一区二区三区| 免费人成在线观看网站视频 | 亚洲毛片无码专区亚洲乱| 亚洲av永久无码精品秋霞电影影院| 国产亚洲精品无码专区| 中文字幕不卡亚洲| 中文字幕亚洲一区二区va在线| 亚洲欧洲精品成人久久奇米网| 亚洲国产aⅴ综合网| 亚洲国产小视频精品久久久三级| 国产乱人免费视频| 四虎国产精品免费久久影院| 免费jjzz在在线播放国产| 又黄又爽的视频免费看| 亚洲国产精品成人AV无码久久综合影院 | 在线看无码的免费网站| 99久久久国产精品免费蜜臀| 最刺激黄a大片免费网站| 日韩在线播放全免费|