import java.math.BigDecimal; import java.text.NumberFormat; public class Java中double类型的数据精确到小数点后两位 { /** * @param args */ public static void main(String[] args) { //1 double f = 749.1666666666666; BigDecimal b = new BigDecimal(f); double f1 = b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue(); System.out.println("f="+f1); //2 String t=new java.text.DecimalFormat("#.00").format(749.1666666666666); System.out.println("t="+t); //3 double d = 749.1666666666666; String result = String .format("%.2f",d); System.out.println("result="+result); //4 NumberFormat ddf1=NumberFormat.getNumberInstance() ; System.out.println("ddf1="+ddf1.format(749.1666666666666)); } }
程序结果如下:
f=749.17 t=749.17 result=749.17 ddf1=749.167