數(shù)字的格式化在解決實(shí)際問(wèn)題時(shí)使用非常普遍,如表示某超市商品價(jià)格稻薇,需要保留兩位有效數(shù)字轴合。Java主要對(duì)浮點(diǎn)型數(shù)據(jù)進(jìn)行數(shù)字格式化操作伊脓,其中浮點(diǎn)型數(shù)據(jù)包括double
型和float
型數(shù)據(jù)晓殊,在Java中使用java.text.DecimalFormat
格式化數(shù)字断凶。
一般情況下可以通過(guò)實(shí)例化DecimalFormat
對(duì)象時(shí)傳遞數(shù)字格式,也可以通過(guò)DecimalFormat
類(lèi)中的applyPattern()
方法來(lái)實(shí)現(xiàn)數(shù)字格式化巫俺。例如:
//通過(guò)實(shí)例化DecimalFormat對(duì)象時(shí)傳遞數(shù)字格式
DecimalFormat myFormat = new DecimalFormat(pattern);
System.out.println(myFormat.format(value))认烁;
//通過(guò)DecimalFormat類(lèi)中的applyPattern()方法來(lái)實(shí)現(xiàn)數(shù)字格式化
DecimalFormat myFormat = new DecimalFormat();
myFormat.applyPattern(pattern);
System.out.println(myFormat.format(value));
其中參數(shù)
pattern
是String
類(lèi)型的格式化模板介汹,如:#.###
却嗡、#.##%
等等。參數(shù)value
是需要格式化的浮點(diǎn)類(lèi)型數(shù)據(jù)嘹承。
DecimalFormat類(lèi)中特殊字符說(shuō)明
例子:
import java.text.DecimalFormat;
public class DecimalFormatSimpleDemo {
// 使用實(shí)例化對(duì)象時(shí)設(shè)置格式化模式
static public void SimgleFormat(String pattern, double value) {
// 實(shí)例化DecimalFormat對(duì)象
DecimalFormat myFormat = new DecimalFormat(pattern);
String output = myFormat.format(value); // 將數(shù)字進(jìn)行格式化
System.out.println(value + " " + pattern + " " + output);
}
// 使用applyPattern()方法對(duì)數(shù)字進(jìn)行格式化
static public void UseApplyPatternMethodFormat(String pattern, double value) {
DecimalFormat myFormat=new DecimalFormat();//實(shí)例化DecimalFormat對(duì)象
myFormat.applyPattern(pattern); // 調(diào)用applyPatten()方法設(shè)置格式化模板
System.out
.println(value + " " + pattern + " " + myFormat.format(value));
}
public static void main(String[] args) {
SimgleFormat("###,###.###", 123456.789);// 調(diào)用靜態(tài)SimgleFormat()方法
SimgleFormat("00000000.###kg", 123456.789); // 在數(shù)字后加上單位
// 按照格式模板格式化數(shù)字窗价,不存在的位以0顯示
SimgleFormat("000000.000", 123.78);
// 調(diào)用靜態(tài)UseApplyPatternMethodFormat()方法
UseApplyPatternMethodFormat("#.###%", 0.789); // 將數(shù)字轉(zhuǎn)換為百分?jǐn)?shù)形式
// 將小數(shù)點(diǎn)后格式化為兩位
UseApplyPatternMethodFormat("###.##", 123456.789);
// 將數(shù)字轉(zhuǎn)化為千分?jǐn)?shù)形式
UseApplyPatternMethodFormat("0.00\u2030", 0.789);
}
}
運(yùn)行結(jié)果