亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

java 格式化輸出數字的方法

2019-11-26 15:45:38
字體:
來源:轉載
供稿:網友

主要使用的類:java.text.DecimalFormat

  1。實例化對象,可以用如下兩種方法:

復制代碼 代碼如下:

  DecimalFormat df=(DecimalFormat)NumberFormat.getInstance();
  DecimalFormat df1=(DecimalFormat) DecimalFormat.getInstance();

  因為DecimalFormat繼承自NumberFormat。

  2。設定小數位數

  系統默認小數位數為3,如:

復制代碼 代碼如下:

  DecimalFormat df=(DecimalFormat)NumberFormat.getInstance();
  System.out.println(df.format(12.3456789));

  輸出:12.346

  現在可以通過如下方法把小數為設為兩位:

復制代碼 代碼如下:

  df.setMaximumFractionDigits(2);
  System.out.println(df.format(12.3456789));

  則輸出為:12.35

  3。將數字轉化為百分比輸出,有如下兩種方法:

  (1)

復制代碼 代碼如下:

  df.applyPattern("##.##%");
  System.out.println(df.format(12.3456789));
  System.out.println(df.format(1));
  System.out.println(df.format(0.015));

  輸出分別為:1234.57%  100%    1.5%

  (2)

復制代碼 代碼如下:

  df.setMaximumFractionDigits(2);
  System.out.println(df.format(12.3456789*100)+"%");
  System.out.println(df.format(1*100)+"%");
  System.out.println(df.format(0.015*100)+"%");

  輸出分別為:

  1,234.57%   100%   1.5%

  4。設置分組大小

復制代碼 代碼如下:

  DecimalFormat df1=(DecimalFormat) DecimalFormat.getInstance();
  df1.setGroupingSize(2);
  System.out.println(df1.format(123456789));

  輸出:1,23,45,67,89

  還可以通過df1.setGroupingUsed(false);來禁用分組設置,如:

復制代碼 代碼如下:

  DecimalFormat df1=(DecimalFormat) DecimalFormat.getInstance();
  df1.setGroupingSize(2);
  df1.setGroupingUsed(false);
  System.out.println(df1.format(123456789));

  輸出:123456789

  5。設置小數為必須為2位

復制代碼 代碼如下:

  DecimalFormat df2=(DecimalFormat) DecimalFormat.getInstance();
  df2.applyPattern("0.00");
  System.out.println(df2.format(1.2));

  輸出:1.20

有時我們需要控制輸出的數字的格式,如何使用java的類庫做到這個呢?
也許你不關心格式,但是你需要關心你的程序可以在全世界通用,像下面的這樣一個簡單的語句是依賴地區的:
    System.out.println(1234.56);
在美國,"." 是小數點,但在其它地方就不一定了。如何處理這個呢?
java.text 包中的一些包可以處理這類問題。下面的簡單范例使用那些類解決上面提出的問題:

復制代碼 代碼如下:

 import java.text.NumberFormat;
    import java.util.Locale;
    public class DecimalFormat1 {
        public static void main(String args[]) {
            // 得到本地的缺省格式
            NumberFormat nf1 = NumberFormat.getInstance();
            System.out.println(nf1.format(1234.56));
            // 得到德國的格式
            NumberFormat nf2 =
             NumberFormat.getInstance(Locale.GERMAN);
            System.out.println(nf2.format(1234.56));
        }     }
 

   如果你在美國,運行程序后輸出:
    1,234.56
    1.234,56
換句話說,在不同的地方使用不同的習慣表示數字。
    NumberFormat.getInstance()方法返回NumberFormat的一個實例(實際上是NumberFormat具體的一個子類,例如DecimalFormat), 這適合根據本地設置格式化一個數字。你也可以使用非缺省的地區設置,例如德國。然后格式化方法根據特定的地區規則格式化數字。這個程序也可以使用一個簡單的形式:
    NumberFormat.getInstance().format(1234.56)
但是保存一個格式然后重用更加有效。國際化是格式化數字時的一個大問題。
另一個是對格式的有效控制,例如指定小數部分的位數,下面是解決這個問題的一個簡單例子:

復制代碼 代碼如下:

    import java.text.DecimalFormat;
    import java.util.Locale;
    public class DecimalFormat2 {
        public static void main(String args[]) {
            // 得到本地的缺省格式
            DecimalFormat df1 = new DecimalFormat("####.000");
            System.out.println(df1.format(1234.56));
            // 得到德國的格式
            Locale.setDefault(Locale.GERMAN);
            DecimalFormat df2 = new DecimalFormat("####.000");
            System.out.println(df2.format(1234.56));
        }
    }

在這個例子中設置了數字的格式,使用像"####.000"的符號。這個模式意味著在小數點前有四個數字,如果不夠就空著,小數點后有三位數字,不足用0補齊。程序的輸出:
    1234.560
    1234,560
相似的,也可以控制指數形式的格式,例如:

復制代碼 代碼如下:

    import java.text.DecimalFormat;
    public class DecimalFormat3 {
        public static void main(String args[]) {
            DecimalFormat df = new DecimalFormat("0.000E0000");
            System.out.println(df.format(1234.56));
        }
    }

輸出:
    1.235E0003
對于百分數:

復制代碼 代碼如下:

    import java.text.NumberFormat;
    public class DecimalFormat4 {
        public static void main(String args[]) {
            NumberFormat nf = NumberFormat.getPercentInstance();
            System.out.println(nf.format(0.47));
        }
    }

輸出:
    47%
至此,你已經看到了格式化數字的幾個不同的技術。另一方面,如何讀取并解析包含格式化的數字的字符串?解析支持包含在NumberFormat中。例如:

復制代碼 代碼如下:

    import java.util.Locale;
    import java.text.NumberFormat;
    import java.text.ParseException;
    public class DecimalFormat5 {
        public static void main(String args[]) {
            // 本地格式
            NumberFormat nf1 = NumberFormat.getInstance();
            Object obj1 = null;
            // 基于格式的解析
            try {
                obj1 = nf1.parse("1234,56");
            }
            catch (ParseException e1) {
                System.err.println(e1);
            }
            System.out.println(obj1);
            // 德國格式
            NumberFormat nf2 =
                NumberFormat.getInstance(Locale.GERMAN);
            Object obj2 = null;
            // 基于格式的解析
            try {
                obj2 = nf2.parse("1234,56");
            }
            catch (ParseException e2) {
                System.err.println(e2);
            }
            System.out.println(obj2);
        }
    }

這個例子分兩部分,都是解析一個字符串:"1234,56"。第一部分使用本地格式解析,第二部分使用德國格式解析。當程序在美國運行,結果是:
    123456
    1234.56
換句話說,"1234,56"在美國被認為是一個巨大的整數123456,而在德國被認為是一個小數"1234.56"。
   還有格式化討論的最后一個問題。在上面的例子中, DecimalFormat 和 NumberFormat 都被使用了。DecimalFormat 常用于獲得很好的格式控制,而NumberFormat 常用于指定不同于本地的地區。如何結合兩個類呢?
   答案圍繞著這樣的事實:DecimalFormat是NumberFormat的一個子類,其實例被指定為特定的地區。因此,你可以使用NumberFormat.getInstance 指定一個地區,然后將結構強制轉換為一個DecimalFormat對象。文檔中提到這個技術可以在大多情況下適用,但是你需要用try/catch 塊包圍強制轉換以防轉換不能正常工作 (大概在非常不明顯得情況下使用一個奇異的地區)。下面是一個這樣的例子:

復制代碼 代碼如下:

    import java.text.DecimalFormat;
    import java.text.NumberFormat;
    import java.util.Locale;
    public class DecimalFormat6 {
        public static void main(String args[]) {
            DecimalFormat df = null;
            // 得到一個NumberFormat 對象并
            // 強制轉換為一個 DecimalFormat 對象
            try {
                df = (DecimalFormat)
                    NumberFormat.getInstance(Locale.GERMAN);
            }
            catch (ClassCastException e) {
                System.err.println(e);
            }
            // 設置格式模式
            df.applyPattern("####.00000");
            // format a number
            System.out.println(df.format(1234.56));
        }
    }

getInstance() 方法獲得格式,然后調用applyPattern()方法設置格式模式,輸出:
    1234,56000
如果你不關心國際化,可以直接使用DecimalFormat 。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产主播欧美精品| 91超碰中文字幕久久精品| 欧美性猛交xxxx乱大交蜜桃| 欧美精品免费播放| 久久久之久亚州精品露出| 国产精品人成电影在线观看| 中文字幕av日韩| 91精品久久久久久久久久| 亚洲国产天堂网精品网站| 国产精品嫩草影院一区二区| 欧美激情乱人伦一区| 亚洲精品永久免费| 亚洲色图综合网| 欧美视频免费在线| 91免费国产视频| 欧美性高潮在线| 国产精品久久久久久久久久久久久久| 亚洲欧美日韩综合| 一区二区三区 在线观看视| 日韩电影中文字幕av| 欧美在线性爱视频| 国产综合久久久久久| 国产91在线播放九色快色| 色综合导航网站| 久国内精品在线| 久久久在线观看| 亚洲精品资源美女情侣酒店| 亚洲午夜久久久影院| 日韩av影院在线观看| 97视频免费在线观看| 国产精品小说在线| 岛国视频午夜一区免费在线观看| 成人欧美一区二区三区黑人| 精品久久久av| 中文字幕亚洲欧美日韩高清| 欧美—级a级欧美特级ar全黄| 91成人福利在线| 成人做爰www免费看视频网站| 日韩久久精品电影| 欧美综合第一页| 美日韩在线视频| 91精品久久久久久久久久久久久| 国产精品自产拍在线观| 亚洲丝袜在线视频| 欧美日韩国产999| 国产91热爆ts人妖在线| 欧美午夜影院在线视频| 538国产精品一区二区免费视频| 亚洲丝袜av一区| 国产精品青青在线观看爽香蕉| 欧美孕妇毛茸茸xxxx| 亚洲春色另类小说| 欧美日韩在线一区| 国产亚洲精品一区二555| 国产一区二区三区高清在线观看| 日本在线观看天堂男亚洲| 国产91在线播放九色快色| 国产色婷婷国产综合在线理论片a| 国产欧美在线视频| 国产热re99久久6国产精品| 欧美日韩亚洲高清| 欧美极品少妇xxxxⅹ喷水| 久久91精品国产91久久久| 亚洲成色777777在线观看影院| 国产日韩综合一区二区性色av| 亚洲男人的天堂网站| 91热精品视频| 91精品视频在线免费观看| 亚洲国产成人一区| 国产91精品最新在线播放| 欧美尤物巨大精品爽| 91av在线播放视频| 国内伊人久久久久久网站视频| 在线丨暗呦小u女国产精品| 亚洲精品电影网站| 国产精品视频自在线| 亚洲欧美国产制服动漫| 欧美情侣性视频| 欧美日韩精品在线播放| 成人午夜在线视频一区| 国产精品国产自产拍高清av水多| 日韩黄在线观看| 精品美女国产在线| 中文字幕久久精品| 久久夜色精品国产亚洲aⅴ| 成人av电影天堂| 亚洲精品女av网站| 97视频在线看| 国产精品视频在线播放| 久久色免费在线视频| 九九热精品视频在线播放| 欧美日韩成人在线视频| 91青草视频久久| 日韩av最新在线观看| 国产精品欧美日韩久久| 日韩免费观看av| 91极品女神在线| 欧美极品少妇与黑人| 欧美日韩性生活视频| 久久影视电视剧免费网站清宫辞电视| 成人国产精品色哟哟| 国产精品美腿一区在线看| 亚洲女人天堂色在线7777| 亚洲综合大片69999| 91免费版网站入口| 国产91在线高潮白浆在线观看| 午夜精品久久久久久99热| 色偷偷88888欧美精品久久久| 国产精品羞羞答答| 国产精品九九九| 中文在线资源观看视频网站免费不卡| 欧美精品激情在线| 国产精品久久视频| 日韩一区在线视频| 欧美猛男性生活免费| 亚洲精品国精品久久99热一| 最近2019年好看中文字幕视频| 亚洲精品国精品久久99热一| 成人网在线免费看| 中文字幕av一区二区三区谷原希美| 欧美亚洲成人xxx| 日韩视频在线免费| 久久久精品一区二区三区| 国产欧美一区二区白浆黑人| 欧美一区二区三区精品电影| 97久久久久久| 久久久久久久91| 国产精品日韩电影| 日韩欧美一区视频| 亚洲欧美激情在线视频| 中文字幕日韩精品有码视频| 久久男人的天堂| 欧美性猛交xxxx黑人| 狠狠色香婷婷久久亚洲精品| 亚洲女人天堂视频| 午夜精品99久久免费| 国产男人精品视频| 亚洲精品久久久久久久久久久久| 欧美极品少妇xxxxⅹ喷水| 日韩电影网在线| 亚洲欧美精品suv| 亚洲女同性videos| 欧美又大粗又爽又黄大片视频| 在线观看日韩欧美| 国产香蕉一区二区三区在线视频| 欧美黑人xxxⅹ高潮交| 日韩精品亚洲元码| 青草青草久热精品视频在线网站| 97国产精品人人爽人人做| 成人午夜在线视频一区| 亚洲香蕉成人av网站在线观看| 日韩a**站在线观看| 国模gogo一区二区大胆私拍| 欧美成人午夜免费视在线看片| 成人黄色片在线| 久久久久www| 国产一区二区三区在线视频| 国产精品视频精品视频| 91精品视频在线| 美女视频黄免费的亚洲男人天堂| 欧美裸体男粗大视频在线观看| 亚洲欧美激情另类校园| 国产精品一久久香蕉国产线看观看| 国产成人精品综合|