1、DecimalFormat
public static void main(String[] args) {
DecimalFormat df = new DecimalFormat("#.###");
double d = 3.1415;
System.out.println(df.format(d));
}
DecimalFormat位于java.text包下该方法会进行四舍五入,小数点后有几个#就保留几位,如果#的个数超过小数的位数,则输出就是原小数,而不会自动补0;如果要自动补0,可将#改为0:
DecimalFormat df = new DecimalFormat("#.000000");
这时输出回是3.141500
2、BigDecimal
public static void main(String[] args) {
double d = 3.1415;
BigDecimal bd = new BigDecimal(d + ""); // 注意传入的是字符串
bd = bd.setScale(2,BigDecimal.ROUND_CEILING); // 进一
bd = bd.setScale(3,BigDecimal.ROUND_HALF_UP); // 四舍五入
bd = bd.setScale(3,BigDecimal.ROUND_DOWN); // 去尾
进一输出是3.15
四舍五入输出是3.142
去尾输出的是3.141
String.format
double d = 3.1415;
System.out.println(String.format("%.3f", d)); // 四舍五入
乘除法
double d = 3.1415;
System.out.println((int)(d*1000+0.5)/1000.0); // 四舍五入
System.out.println((int)(d*1000)/1000.0); // 去尾