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四舍五入并保留两位小数的方法
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
;
|