Java中double变量精确到小数点后几(2)位

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

你可能感兴趣的:(Java中double变量精确到小数点后几(2)位)