这里精确到小数点后1位
package pack;
import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;
import java.text.DecimalFormat;
public class test {
public static void main(String[] args) {
double pi = 1.23456789;
//直接用格式化输出 , f前的数字为精确到几位
//注意:格式化输出不换行
System.out.format("%.1f",pi);
System.out.println();
//使用DecimalFormat,精确到几位,要按后面的格式
//如果精确到小数点后5位的话,则为 "0.00000"
DecimalFormat df = new DecimalFormat("0.0");
System.out.println(df.format(pi));
//使用BigDecimal,注意:填入参数中的数字为:精确到几位然后加一的值
BigDecimal bd = new BigDecimal(pi,new MathContext(2, RoundingMode.HALF_UP));
System.out.println(bd);
//BigDecimal第二种精确方式
//除法操作然后保留到小数点后1位,对于一个数可以除以1然后保留
BigDecimal bd2 = new BigDecimal(pi);
System.out.println(bd2.divide(new BigDecimal(1),1,RoundingMode.HALF_UP));
//第一个参数为:除数,第二个参数为:精确到几位的值
//若是精确到后5位这样填
System.out.println(bd2.divide(new BigDecimal(1),5,RoundingMode.HALF_UP));
}
}