NumberFormat和DecimalFormat

##NumberFormat##html

調用NumberFormat的工廠方法,如getInstance(),來獲取具體語言環境的NumberFormat(包括默認語言環境)。該類設計有各類功能,使其可以解析和格式化任意語言環境中的數,包括對西方語言、阿拉伯語和印度語數字的支持。它還支持不一樣類型的數,包括整數(123)、定點數(123.4)、科學記數法表示的數(1.23E4)、百分數(12%)和金額($123)。全部這些內容均可以本地化。 (一般不直接調用DecimalFormat的構造方法,由於NumberFormat的工廠方法可能返回不一樣於DecimalFormat的子類。DecimalFormat是NumberFormat的一個具體子類,用於格式化十進制數字。)java

/**
	 * 格式化format
	 * */
	NumberFormat numberFormat = NumberFormat.getNumberInstance(Locale.US);
	numberFormat.setMaximumIntegerDigits(5); // 整數部分最大位數
	numberFormat.setMinimumIntegerDigits(3); // 整數部分最小位數
	numberFormat.setMaximumFractionDigits(5); // 小數部分最大位數
	numberFormat.setMinimumFractionDigits(3); // 小數部分最小位數
	String number1 = numberFormat.format(1234567.1234567); // 34,567.12346 四捨五入
	String number2 = numberFormat.format(12.12); // 012.120 補0

	Log.d(TAG, " numberFormat : number1=" + number1 + ", number2=" + number2);

	NumberFormat currencyFormat = NumberFormat.getCurrencyInstance(Locale.CHINA);
	String currency1 = currencyFormat.format(321283.47656); // ¥ 321,283.48
	currencyFormat.setMaximumFractionDigits(3);
	String currency2 = currencyFormat.format(321283.47656); // ¥ 321,283.477

	Log.d(TAG, " currencyFormat : number1=" + currency1 + ", number2=" + currency2);

	NumberFormat percentFormat = NumberFormat.getPercentInstance(Locale.US);
	String percent1 = percentFormat.format(321283.47656); //32,128,348%
	Log.d(TAG, " percentFormat : number1=" + percent1 + ", number2=" + percent1);

	/**
	 * 解析parse
	 * */
	NumberFormat nf1 = NumberFormat.getInstance(Locale.US);
	Object obj1 =  nf1.parse("123,456");
	NumberFormat nf2 = NumberFormat.getInstance(Locale.GERMAN); // 德國
	Object obj2 = nf2.parse("123,456");

	//Number parse : number1=123456, number2=123.456
	Log.d(TAG, "Number parse : number1=" + obj1 + ", number2=" + obj2);

	Number number = percentFormat.parse("32,128,745%");
	Log.d(TAG, "===" + number.doubleValue()); //321287.45
	Log.d(TAG, "===" + number.floatValue()); //321287.44
	Log.d(TAG, "===" + number.intValue()); //321287
	Log.d(TAG, "===" + number.byteValue()); //7
	Log.d(TAG, "===" + number.longValue()); //321287

##DecimalFormat##android

DecimalFormat df1 = new DecimalFormat("0.0");
	DecimalFormat df2 = new DecimalFormat("#.#");
	DecimalFormat df3 = new DecimalFormat("000.000");
	DecimalFormat df4 = new DecimalFormat("###.###");

	Log.d(TAG,df1.format(12.35)); //12.4
	Log.d(TAG,df2.format(12.34)); //12.3
	Log.d(TAG,df3.format(12.34)); //012.340
	Log.d(TAG,df4.format(12.34)); //2.34

參考: 官方文檔 https://developer.android.com/reference/java/text/DecimalFormat.html DecimalFormat()格式化輸出數字 http://blog.sina.com.cn/s/blog_8b7a1553010172ex.html java保留兩位小數 http://blog.csdn.net/yuhua3272004/article/details/3075436git

相關文章
相關標籤/搜索