代码:
package com.jc.test; import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.NumberFormat; /** * 精确小数点后多少位的四种方法 * @author wang-xiaoming * */ public class TestPrecision { public static void main(String[] args) { double pi = Math.PI; // 方法一:调用decimalFormat DecimalFormat df = new DecimalFormat(".00"); System.out.println("decimalFormat.format(): " + df.format(pi)); // 方法二:调用String类的format函数 System.out.println("string.format(): " + String.format("%.2f", pi)); // 方法三:调用bigDecimal BigDecimal bd = BigDecimal.valueOf(pi); pi = bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); System.out.println("bigDecimal.doubleValue(): " + pi); // 方法四:调用numberFormat NumberFormat nf = NumberFormat.getNumberInstance(); nf.setMaximumFractionDigits(2); System.out.println("numberFormat.format(): " + nf.format(pi)); } }
结果:
decimalFormat.format(): 3.14 string.format(): 3.14 bigDecimal.doubleValue(): 3.14 numberFormat.format(): 3.14