Java中使用DecimalFormat来设置输出小数的位数

来源:互联网 发布:meli melo 知乎 编辑:程序博客网 时间:2024/05/16 03:45
java.text.DecimalFormat df=new java.text.DecimalFormat(Stringpattern)
String s=df.format(235.56664235423453002943082)

这里DecimalFormat根据pattern来设置输出s的格式。

df=new DecimalFormat(pattern)
or 
df.applyPattern(pattern)

1)pattern=".###"
小数点后最多三位,如果小数部分为零,则不显示。
整数部分没有作处理:当小数点前为0时,就会省略0。比如: 
double d=0.22, then s=".22"

2) pattern="0.00#"
小数部分最多三位 00+#, 最少两位由两个00确定,如果不够两位,则以0填充
整数部分出现了0,说明整数部分至少一位,否则用0填充。
double d=0.2, thens="0.20"


3)pattern=".##%"   相当于*100 并且保留最多两位小数
使用百分数,并保留最多两位小数
double d=0.2, then s="20%"
double d=0.23455, then s="23.46%"

or 
pattern=".00%" 保留两位小数
double d=0.2,then s=20.00%"


4) pattern=".##\u2030"
使用千分号0/oo, 相当于*1000
double d=0.1,then s="100/oo"
double d=0.234567,then s="234.56/oo"
or
pattern=".00\u2030"
double d=88.22,then s="88220.00/oo"
double d=0.1f,then s="100.00/oo"


5)
pattern="'Money Amount:',###.###'$'"
用于前缀,数值模式,后缀,使用"拼接”   'Money Amount'  ###.###  '$'
double d=123.4, then s="Money Amount:123.4$
double d=12.34532,then s="Money Amount:12.345$

6)
pattern="\u00A4" ¥

double四舍五入并保留两位小数的方法

1.只要输出结果

1
2
double x1 = 0.026;
System.out.println(String.format("%.2f", x1));



2.数据转换

1
2
3
4
5
6
7
8
9
10
11
//方案一:
get_double = (double)(Math.round(result_value*100)/100.0)
//方案二:
DecimalFormat df =new DecimalFormat("#.##");
get_double = Double.ParseDouble(df.format(result_value));
//方案三:
get_double = Double.ParseDouble(String.format("%.2f",result_value));
//方案四:
BigDecimal bd = new BigDecimalresult_value();
BigDecimal  bd2 = bd.setScale(2,BigDecimal  .ROUND_HALF_UP);
get_double = Double.ParseDouble(bd2.ToString());





3.只保留两位小数(不含四舍五入)

1
2
double d = 13.4324;
d=((int)(d*100))/100;

0 0
原创粉丝点击