小數(shù)保留幾位 DecimalFormat

小數(shù)轉(zhuǎn)換我不太常用硫惕,所以隨手做個(gè)小記。
主要記的是一個(gè)類 DecimalFormat ,
DecimalFormat是NumberFormat一個(gè)具體的子類避诽,主要是格式化十進(jìn)制數(shù)。它有各種各樣的設(shè)計(jì)用于解析和格式化數(shù)字中的數(shù)字的特性區(qū)域設(shè)置璃谨,包括整數(shù)(123)沙庐、固定點(diǎn)編號(hào)(123.4)、科學(xué)記數(shù)法(1.23E4)佳吞、百分比(12%)和貨幣金額(123美元)等拱雏。


常用到的幾個(gè)需求案例

1.保留兩位的百分比數(shù);例如:99.99%
2.金額默認(rèn)保留兩位底扳;例如:199.00¥铸抑,231,199.00元
3.最多保留幾位,最少保留幾位衷模;例如:3.141592 鹊汛, 3.14蒲赂, 3
4.舍入配置 等需求


上代碼- 幾個(gè)常用方法介紹


  //輸入  5211314
  // 可以無參數(shù)構(gòu)造,有參數(shù)構(gòu)造 參數(shù)有語法刁憋,詳見底部滥嘴。參考"0.0","0.0¤"至耻,"0.0%"氏涩。
    DecimalFormat df = new DecimalFormat();
  // 設(shè)置國家貨幣符號(hào) 參數(shù)為ISO 4217標(biāo)準(zhǔn),如果構(gòu)造參數(shù)添加‘¤’符號(hào)有梆,參考--> 5211314¥
    df.setCurrency(Currency.getInstance("CNY"));
  // 設(shè)置最多保留幾位.參考--> 5211314.00
    df.setMaximumFractionDigits(2);
  // 設(shè)置分組大小.參考--> 5,211,314
    df.setGroupingSize(3);
  // 設(shè)置乘以的倍數(shù).參考--> 521131400
    df.setMultiplier(100);
  // 設(shè)置正數(shù)前綴,參考--> @5211314
    df.setPositivePrefix("@");
  // 設(shè)置正數(shù)后綴 但是替換掉 已有字符 參考--> 5211314@
    df.setPositiveSuffix("@");
  // 設(shè)置負(fù)數(shù)前綴,只對(duì)負(fù)數(shù)有效   參考-->@-1
    df.setNegativePrefix("@");
  // 設(shè)置負(fù)數(shù)后綴 但是替換掉 已有字符  只對(duì)負(fù)數(shù)有效  參考--> -1@
    df.setNegativeSuffix("@");
  // 設(shè)置四舍五入的模式 詳見 RoundingMode 類 寫的 非常詳細(xì)
    df.setRoundingMode(RoundingMode.DOWN);
  // 格式化 成 想要的結(jié)果
    df.format(5211314);

比較通用的方法


    /**
     * 獲取格式化的double數(shù)的字符串
     * 
     * 直接截取數(shù)值 不四舍五入
     * 
     * @param num  需要被格式化的數(shù)   
     * @param sample 具體樣式
     *      sample="0.00元";             效果 :    2018.99元;
     *      sample="(萬元)0.00";         效果 :     (萬元)2018.99;
     *      sample="0.00¥";             效果 :    2018.99¥;
     *      sample="¥0.00";             效果 :    ¥2018.99;
     *      sample="0.00%";             效果 :    201899.00%; (自動(dòng)乘以100)
     * @return 格式化后的字符串
     */
    public static String getDoubleFormat(double num, String sample){
        DecimalFormat df=new DecimalFormat(sample);
        df.setGroupingSize(0);
        df.setRoundingMode(RoundingMode.DOWN);
        return df.format(num);
    }

    //百分比 和 金額數(shù)值 打印
    System.out.println(getDoubleFormat(0.99989,"0.00%"));//打印結(jié)果: 99.98%,自動(dòng)乘以100
    System.out.println(getDoubleFormat(1,"0.00%"));//打印結(jié)果: 100.00%,自動(dòng)乘以100
    System.out.println(getDoubleFormat(1.2577,"0.00 萬元"));//打印結(jié)果: 1.25 萬元
    System.out.println(getDoubleFormat(12577,"0.00 元"));//打印結(jié)果: 12577.00 元
    System.out.println(getDoubleFormat(12577,"¥ 0.00"));//打印結(jié)果: ¥ 12577.00

帶位分隔的格式化的double數(shù)的字符串


    /**
     * 獲取帶位分隔格式化的double數(shù)的字符串
     * (帶位分隔的就比較麻煩點(diǎn)了)
     * 
     * 直接截取數(shù)值 不四舍五入
     * 
     * @param num 需要被格式化的數(shù)   
     * @param groupingSize 需要幾位整數(shù)分隔
     * @param fractionDigits 需要保留幾位小數(shù)
     * @param suffix 后綴字符
     * @return 格式化后的字符串
     */
    public static String getGroupingFormat(double num,int groupingSize, int fractionDigits,String suffix){
        DecimalFormat df=new DecimalFormat();
        df.setMaximumFractionDigits(fractionDigits);
        df.setMinimumFractionDigits(fractionDigits);
        df.setGroupingSize(groupingSize);
        df.setPositiveSuffix(suffix);
        df.setNegativeSuffix(suffix);
        df.setRoundingMode(RoundingMode.DOWN);
        return df.format(num);
    }

    System.out.println(getGroupingFormat(12577,3,2," 元"));//打印結(jié)果: 12,577.00 元
    System.out.println(getGroupingFormat(12577.998,3,2," 元"));//打印結(jié)果: 12,577.99 元
    System.out.println(getGroupingFormat(177.998,3,2," ¥"));//打印結(jié)果: 177.99 ¥

控制最多保留幾位,最少保留幾位


    //最多保留幾位
    df.setMaximumFractionDigits(6);
    //最少保留幾位, 可以是0 就是 取整數(shù)
    df.setMinimumFractionDigits(2);

四舍五入的模式 詳見: RoundingMode
ISO 4217標(biāo)準(zhǔn) 詳見: ISO 4217

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末是尖,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子泥耀,更是在濱河造成了極大的恐慌饺汹,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件痰催,死亡現(xiàn)場離奇詭異兜辞,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)夸溶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門逸吵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人缝裁,你說我怎么就攤上這事扫皱。” “怎么了捷绑?”我有些...
    開封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵韩脑,是天一觀的道長。 經(jīng)常有香客問我粹污,道長段多,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任壮吩,我火速辦了婚禮进苍,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘鸭叙。我一直安慰自己觉啊,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開白布递雀。 她就那樣靜靜地躺著柄延,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上搜吧,一...
    開封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天市俊,我揣著相機(jī)與錄音,去河邊找鬼滤奈。 笑死摆昧,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蜒程。 我是一名探鬼主播绅你,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼昭躺!你這毒婦竟也來了忌锯?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤领炫,失蹤者是張志新(化名)和其女友劉穎偶垮,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體帝洪,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡似舵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了葱峡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片砚哗。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖砰奕,靈堂內(nèi)的尸體忽然破棺而出蛛芥,到底是詐尸還是另有隱情,我是刑警寧澤脆淹,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布常空,位于F島的核電站,受9級(jí)特大地震影響盖溺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜铣缠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一烘嘱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蝗蛙,春花似錦蝇庭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春北发,著一層夾襖步出監(jiān)牢的瞬間纹因,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來泰國打工琳拨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留瞭恰,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓狱庇,卻偏偏與公主長得像惊畏,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子密任,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理颜启,服務(wù)發(fā)現(xiàn),斷路器浪讳,智...
    卡卡羅2017閱讀 134,651評(píng)論 18 139
  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說閱讀 10,958評(píng)論 6 13
  • 記憶本身也是活的,有它自己的生命和成長合呐,故事存在那里面暮的,跟著一塊活,一塊成長淌实,于是就都不是原來的模樣了冻辩,可是誰又能...
    思想主義者閱讀 493評(píng)論 0 2
  • 昨天兒子語文學(xué)了《燈籠果》放坏,回家跟我說:“媽媽咙咽,老師讓買燈籠果給我們吃∮倌辏”我說:“好的钧敞。”雖然答應(yīng)下來麸粮,...
    鈞宇閱讀 125評(píng)論 0 0
  • 今天準(zhǔn)備寫采訪稿的弄诲,想了一下愚战,家人都不在身邊,爸媽不會(huì)玩微信,于是把目標(biāo)鎖定在了我家老李身上寂玲,其實(shí)他比我...
    李樂嬸閱讀 465評(píng)論 6 2