下面以保留2位小数,且按照四舍五入规则的例子
方法
1.BigDecimal.setScale()
此方法得到的还是个double数值
double one = 5.864;
BigDecimal two = new BigDecimal(one);
double one = two.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();
setScale()中,第一个参数为保留位数,第二个参数则是规则,有以下几个选项:
BigDecimal.ROUND_HALF_UP
四舍五入,BigDecimal.ROUND_HALF_DOWN
五舍六入,BigDecimal.ROUND_UP
进位处理(就是直接加1)BigDecimal.ROUND_DOWN
直接去掉尾数
2.Sting.format()
此方法得到的是个string类型
double one = 5.864;
String str = String.format("%.2f",one);
3.NumberFormat.format()
此方法得到的是个string类型
import java.text.NumberFormat;
double d = 5.864;
NumberFormat nf = NumberFormat.getNumberInstance();
// 保留两位小数
nf.setMaximumFractionDigits(2);
// 如果不需要四舍五入,可以使用RoundingMode.DOWN
nf.setRoundingMode(RoundingMode.UP);
System.out.println(nf.format(d));
RoundingMode.HALF_DOWN
五舍六入,负数先取绝对值再五舍六入再负数,
RoundingMode.HALF_UP
四舍五入,负数先取绝对值再五舍六入再负数。
4.DecimalFormat.format()
此方法得到的是个string类型
import java.text.DecimalFormat;
double f = 5.864;
DecimalFormat df = new DecimalFormat("#.00");
System.out.println(df.format(f));
#.00
为保留两位小数
评论区