NumberFormat
生活随笔
收集整理的這篇文章主要介紹了
NumberFormat
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
引用:https://www.jianshu.com/p/b9dd363e3ff8
/* * 工作中,可能經常會遇到 比如數據保留兩位小數顯示,去除后面多余的 0 * 按照指定格式輸出 * * NumberFormat 抽象類 * public abstract class NumberFormat * 是所有數值格式的抽象基類,此類提供格式化和解析數值的接口 * * 格式化 或者 解析 數值的 * */?
// public static NumberFormat getInstance() // 返回當前默認的 FORMAT 區域設置的通用數字格式 // 這個跟調用 getNumberInstance()相同 // 用于通用數字格式化的 NumberFormat 實例 // maximum 極大,最大限度,最大量 fraction 分數 digits 數字 // public void setMaximumFractionDigits(int newValue) // 設置數字小數部分允許的最大位數與之相似的 還有 三個? 。方法? 這四個 可以設置? 整數 和 小數 最大位數和最小位數
public void setMinimumIntegerDigits(int newValue) double d =12345.4445655550000;NumberFormat nf = NumberFormat.getInstance(); // 系統自帶的格式化 只保留小數點后三位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 的實現類 * “0” --表示一位數值,如沒有,顯示 0。 如 "0000.0000" * 整數位或 小數位 >4 ,如果位數不夠,補零,湊足4位 * "#" -- 表示任意位數的整數,如沒有,則不顯示, * 在小數點后使用,只表示一位小數,超出部分四舍五入 * "#" -- 無小數,小數部分四舍五入 * ".#" -- 整數部分不變,一位小數,四舍五入 * ".##" -- 整數部分不變,二位小數,四舍五入 * * “.” -- 表示小數點 * “,” -- 與模式 “0” 一起使用,表示逗號,只能用在小數點左邊 * */ 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() // 返回當前默認值 FORMAT 區域設置的貨幣格式// public static NumberFormat getCurrencyInstance(Locale inLocale) // public static final NumberFormatter getPercentInstance() // 返回當前默認值 FORMAT 區域 設置的百分比格式 nf = NumberFormat.getCurrencyInstance(Locale.CANADA);System.out.println(nf.format(d));nf = NumberFormat.getPercentInstance(); // public void setGroupingUsed(boolean newValue) // 設置是否以此格式使用分組 ,, 是否要使用"," 分組 默認是true nf.setGroupingUsed(false);System.out.println(nf.format(d));工具類?
package NumberFormat;import java.text.DecimalFormat; import java.text.NumberFormat;/* * 工具類 * */ public class NumberDeal {/** 移除數字前面和后面冗余的0,只保留3位小數* */public static String trim0(double num) { // 系統默認只保留三位數NumberFormat nf = NumberFormat.getInstance();nf.setGroupingUsed(false);String result = nf.format(num);return result;}/** fractionDigit 要保留的小數位數* */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);}/** 保留幾位小數, 不足 不補零, 小數部分冗余的 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 和 # 的區別* “0” 會讓格式化數值自動補零 ,如果沒有,則補充 0* “#” #不會,即使有 多個# ,但是數值位數不夠 也不會補 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) 這個 和 # 一樣。數值不會自動補零* “0” 會自動補零* */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));} }?
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的NumberFormat的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VBoxGuestAdditions.i
- 下一篇: 计算机基础:多媒体基础知识笔记