日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NumberFormat

發(fā)布時(shí)間:2023/12/10 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NumberFormat 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

引用:https://www.jianshu.com/p/b9dd363e3ff8

/* * 工作中,可能經(jīng)常會遇到 比如數(shù)據(jù)保留兩位小數(shù)顯示,去除后面多余的 0 * 按照指定格式輸出 * * NumberFormat 抽象類 * public abstract class NumberFormat * 是所有數(shù)值格式的抽象基類,此類提供格式化和解析數(shù)值的接口 * * 格式化 或者 解析 數(shù)值的 * */

?

// public static NumberFormat getInstance() // 返回當(dāng)前默認(rèn)的 FORMAT 區(qū)域設(shè)置的通用數(shù)字格式 // 這個(gè)跟調(diào)用 getNumberInstance()相同 // 用于通用數(shù)字格式化的 NumberFormat 實(shí)例 // maximum 極大,最大限度,最大量 fraction 分?jǐn)?shù) digits 數(shù)字 // public void setMaximumFractionDigits(int newValue) // 設(shè)置數(shù)字小數(shù)部分允許的最大位數(shù)

與之相似的 還有 三個(gè)? 。方法? 這四個(gè) 可以設(shè)置? 整數(shù) 和 小數(shù) 最大位數(shù)和最小位數(shù)

public void setMinimumIntegerDigits(int newValue) double d =12345.4445655550000;NumberFormat nf = NumberFormat.getInstance(); // 系統(tǒng)自帶的格式化 只保留小數(shù)點(diǎn)后三位System.out.println(nf.format(d));nf.setMinimumIntegerDigits(9);System.out.println(nf.format(d));nf.setMaximumIntegerDigits(2);System.out.println(nf.format(d));nf.setMaximumFractionDigits(2);System.out.println(nf.format(d));nf.setMinimumFractionDigits(3);System.out.println(nf.format(d));System.out.println("d = " + d); /*DecimalFormat 是 NumberFormat 的實(shí)現(xiàn)類 * “0” --表示一位數(shù)值,如沒有,顯示 0。 如 "0000.0000" * 整數(shù)位或 小數(shù)位 >4 ,如果位數(shù)不夠,補(bǔ)零,湊足4位 * "#" -- 表示任意位數(shù)的整數(shù),如沒有,則不顯示, * 在小數(shù)點(diǎn)后使用,只表示一位小數(shù),超出部分四舍五入 * "#" -- 無小數(shù),小數(shù)部分四舍五入 * ".#" -- 整數(shù)部分不變,一位小數(shù),四舍五入 * ".##" -- 整數(shù)部分不變,二位小數(shù),四舍五入 * * “.” -- 表示小數(shù)點(diǎn) * “,” -- 與模式 “0” 一起使用,表示逗號,只能用在小數(shù)點(diǎn)左邊 * */ nf = new DecimalFormat("0000.0000");System.out.println(nf.format(d));nf = new DecimalFormat("#");System.out.println(nf.format(d));nf = new DecimalFormat(".##");System.out.println(nf.format(d));nf = new DecimalFormat("0000,00.000");System.out.println(nf.format(d)); /* * 貨幣格式化 * */// public static final NumberFormat getCurrencyInstance() // 返回當(dāng)前默認(rèn)值 FORMAT 區(qū)域設(shè)置的貨幣格式// public static NumberFormat getCurrencyInstance(Locale inLocale) // public static final NumberFormatter getPercentInstance() // 返回當(dāng)前默認(rèn)值 FORMAT 區(qū)域 設(shè)置的百分比格式 nf = NumberFormat.getCurrencyInstance(Locale.CANADA);System.out.println(nf.format(d));nf = NumberFormat.getPercentInstance(); // public void setGroupingUsed(boolean newValue) // 設(shè)置是否以此格式使用分組 ,, 是否要使用"," 分組 默認(rèn)是true nf.setGroupingUsed(false);System.out.println(nf.format(d));

工具類?

package NumberFormat;import java.text.DecimalFormat; import java.text.NumberFormat;/* * 工具類 * */ public class NumberDeal {/** 移除數(shù)字前面和后面冗余的0,只保留3位小數(shù)* */public static String trim0(double num) { // 系統(tǒng)默認(rèn)只保留三位數(shù)NumberFormat nf = NumberFormat.getInstance();nf.setGroupingUsed(false);String result = nf.format(num);return result;}/** fractionDigit 要保留的小數(shù)位數(shù)* */public static String trim0(double num,int fractionDigit) {NumberFormat nf = NumberFormat.getInstance();nf.setMaximumFractionDigits(fractionDigit);nf.setGroupingUsed(false);return nf.format(num);}public static String trim0(double num,int integerDigit,int fractionDigit) {StringBuilder rule = new StringBuilder();if(integerDigit > 0) {for (int i = 0; i < integerDigit; i++) {rule.append("0");}}else{rule.append("#");}if(fractionDigit > 0) {rule.append(".");for (int i = 0; i < fractionDigit; i++) {rule.append("0");}}DecimalFormat df = new DecimalFormat(rule.toString());return df.format(num);}/** 保留幾位小數(shù), 不足 不補(bǔ)零, 小數(shù)部分冗余的 0 也不顯示* */public static String fractionDigitFormat(double num,int fractionDigit) {StringBuilder rule = new StringBuilder("#");if(fractionDigit > 0) {rule.append(".");for (int i = 0; i < fractionDigit; i++) {rule.append("#");}/** 拼接 0 和 # 的區(qū)別* “0” 會讓格式化數(shù)值自動補(bǔ)零 ,如果沒有,則補(bǔ)充 0* “#” #不會,即使有 多個(gè)# ,但是數(shù)值位數(shù)不夠 也不會補(bǔ) 0 。如果沒有,則不顯示* */System.out.println("rule = " + rule);}DecimalFormat df = new DecimalFormat(rule.toString());return df.format(num);}public static String fractionDigitFormat1(double num,int fractionDigit){NumberFormat nf = NumberFormat.getInstance();/** setMaximumFractionDigits(int newValue) 這個(gè) 和 # 一樣。數(shù)值不會自動補(bǔ)零* “0” 會自動補(bǔ)零* */nf.setMaximumFractionDigits(fractionDigit);nf.setGroupingUsed(false);return nf.format(num);}public static void main(String[] args) {double num = 1234.4;System.out.println(fractionDigitFormat(num, 3));System.out.println(fractionDigitFormat1(num, 3));} }

?

?

?

?

?

?

?

總結(jié)

以上是生活随笔為你收集整理的NumberFormat的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。