保留小数的一些方法.
以四舍五入保留两位小数为例
- 最朴素高效的方法
public static void method06(double d) {
System.out.printf("%.2f\n",d);
}
- 为什么已经有了最朴素高效的方法,还需要其他的
因为以下一些一些类还可以实现其他功能,四舍五入保留两位小数只是能力之一(格局打开)
import java.text.DecimalFormat;
public static void method02(double d) {
DecimalFormat df = new DecimalFormat("0.00");
System.out.println(df.format(d));
}
import java.text.NumberFormat;
public static void method03(double d) {
NumberFormat nf = NumberFormat.getInstance();
//设置最大分数位
nf.setMaximumFractionDigits(2);
//最小分数位
nf.setMinimumFractionDigits(2);
//是否用 "," 隔开
nf.setGroupingUsed(false);
System.out.println(nf.format(d));
}
import java.util.Formatter;
public static void method04(double d) {
System.out.println(new Formatter().format("%.2f",d));
}
public static void method05(double d) {
System.out.println(String.format("%.2f",d));
}
import java.math.BigDecimal;
import java.math.RoundingMode;
public static void method01(double d) {
BigDecimal decimal = new BigDecimal(-d);
//设置(精度,舍入规则)
decimal=decimal.setScale(2, RoundingMode.HALF_UP);
System.out.println(decimal.toString());
}