服务器之家

服务器之家 > 正文

DecimalFormat数字格式化用法详解

时间:2021-04-08 15:00     来源/作者:Senssic

DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。
DecimalFormat 包含一个模式 和一组符号

符号含义:

下列字符用在非本地化的模式中。已本地化的模式使用从此 formatter 的 DecimalFormatSymbols 对象中获得的相应字符,这些字符已失去其特殊状态。两种例外是货币符号和引号,不将其本地化。

DecimalFormat数字格式化用法详解

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import java.text.DecimalFormat;
  
public class TestDecimalFormat {
public static void main(String[] args) {
DecimalFormat df = new DecimalFormat();
double data = 1203.405607809;
System.out.println("格式化之前:" + data);
  
String pattern = "0.0";//1203.4
df.applyPattern(pattern);
System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));
  
// 可以在模式后加上自己想要的任何字符,比如单位
pattern = "00000000.000kg";//00001203.406kg
df.applyPattern(pattern);
System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));
  
//#表示如果存在就显示字符,如果不存在就不显示,只能用在模式的两头
pattern = "##000.000kg";//1203.406kg
df.applyPattern(pattern);
System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));
  
//-表示输出为负数,必须放在最前面
pattern = "-000.000";//-1203.406
df.applyPattern(pattern);
System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));
  
//,是分组分隔符 :输出结果12,03.41
pattern = "-0,00.0#";//-12,03.41
df.applyPattern(pattern);
System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));
  
//E表示输出为指数,”E“之前的字符串是底数的格式,之后的是指数的格式。
pattern = "0.00E000";//1.20E003
df.applyPattern(pattern);
System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));
  
//%表示乘以100并显示为百分数,要放在最后
pattern = "0.00%";//120340.56%
df.applyPattern(pattern);
System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));
  
//"\u2030"表示乘以1000并显示为千分数,要放在最后
pattern = "0.00\u2030";//203405.61‰
df.applyPattern(pattern);
System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));
  
//"\u00A4"货币符号,要放在两端*****1203.41¥
pattern = "0.00\u00A4";//1203.41¥
df.applyPattern(pattern);
System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));
  
//'用于在前缀或或后缀中为特殊字符加引号,要创建单引号本身,请连续使用两个单引号:"# o''clock"。 
pattern = "'#'#" ;//#1203
// pattern = "'#'" ;//#1203
df.applyPattern(pattern);
System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));
  
pattern = "# o''clock" ;//1203 o'clock
df.applyPattern(pattern);
System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));
//''放在中间或后面单引号就显示在最后,放在最前面单引号就显示在最前
// pattern = "# o''clock.000" ;//1203.406 o'clock
// pattern = "# .000o''clock";//1203.406 o'clock
// pattern = "# .000''";//1203.406 '
// pattern = "# .''000";//1203.406 '
pattern = "''# .000";//'1203.406 
df.applyPattern(pattern);
System.out.println("采用" + pattern + "模式格式化后:" + df.format(data));
}
}

输出结果为: 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
格式化之前:1203.405607809
采用0.0模式格式化后:1203.4
采用00000000.000kg模式格式化后:00001203.406kg
采用##000.000kg模式格式化后:1203.406kg
采用-000.000模式格式化后:-1203.406
采用-0,00.0#模式格式化后:-12,03.41
采用0.00E000模式格式化后:1.20E003
采用0.00%模式格式化后:120340.56%
采用0.00‰模式格式化后:1203405.61
采用0.00¤模式格式化后:1203.41
采用'#'#模式格式化后:#1203
采用# o''clock模式格式化后:1203 o'clock
采用''# .000模式格式化后:'1203.406

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://blog.csdn.net/Senssic/article/details/41249303

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部