保留小数的方法有很多,这里给出4种,但是重点的讲一种:
舍入模式:
先其他三种(四舍五入):
01
double
f
=
11.2233
;
02
03
public
void
m2
()
{
04
DecimalFormat
df
=
new
DecimalFormat
(
"#.00"
);
05
System
.
out
.
println
(
df
.
format
(
f
));
06
}
07
08
public
void
m3
()
{
09
System
.
out
.
println
(
String
.
format
(
"%.2f"
,
f
));
10
}
11
12
public
void
m4
()
{
13
NumberFormat
nf
=
NumberFormat
.
getNumberInstance
();
14
nf
.
setMaximumFractionDigits
(
2
);
15
System
.
out
.
println
(
nf
.
format
(
f
));
16
}
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
不解释,代码有引用部分。不过自己尝试了记得import
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;
然后重点的一种:
1
public
void
m1
()
{
2
BigDecimal
bg
=
new
BigDecimal
(
f
);
3
double
f1
=
bg
.
setScale
(
2
,
BigDecimal
.
ROUND_HALF_UP
).
doubleValue
();
4
System
.
out
.
println
(
f1
);
5
}
2
3
4
5
这种我最推荐是因为它能控制舍入:这里的ROUND_HALF_UP是四舍五入
然后
舍入模式ROUND_CEILING:
接近正无穷大的舍入
舍入模式ROUND_DOWN:
接近于0的舍入
舍入模式ROUND_UP :
远离0的舍入
舍入模式ROUND_FLOOR:
接近负无穷大的舍入
舍入模式ROUND_HALF_DOWN: 向最接近的数字舍入,如果与两个相邻数字的距离相等,则为ROUND_DOWN舍入模式。
舍入模式ROUND_HALF_EVEN: 向最接近的数字舍入,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。
舍入模式ROUND_HALF_UP :四舍五入
这种能控制的舍入绝对非常方便。。。