案例 精确小数点后多少位的四种方法
代码:
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,格式:.00 System.out.println("decimalFormat.format(): " + new DecimalFormat(".00").format(pi)); // 方法二:调用String类的format函数,格式:%.2f System.out.println("string.format(): " + String.format("%.2f", pi)); // 方法三:调用bigDecimal,格式:2 System.out.println("bigDecimal.doubleValue(): " + BigDecimal.valueOf(pi).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); // 方法四:调用numberFormat,格式:2 NumberFormat nf = NumberFormat.getNumberInstance(); nf.setMaximumFractionDigits(2); System.out.println("numberFormat.format(): " + nf.format(pi)); // 逗号分隔数字,适用于价格金额 nf.setGroupingUsed(true); System.out.println("numberFormat.format() 逗号分隔: " + nf.format(1000000.123)); } }
结果:
decimalFormat.format(): 3.14 string.format(): 3.14 bigDecimal.doubleValue(): 3.14 numberFormat.format(): 3.1416 numberFormat.format() 逗号分隔: 1,000,000.0001
扩展:使用String.format方法对数字格式化补零
/** * 根据数字获取三位补零结果 * @param num * @return */ public static String getThreeFillZero(int num){ return String.format("%3d", num).replaceAll(" ", "0"); }
雨淋淋过的季节

浙公网安备 33010602011771号