JavaSE基础之double数据类型的格式化
1、double 数据类型的格式化工具类:DoubleFormatUtil.java
1 package cn.com.zfc.util; 2 3 import java.math.BigDecimal; 4 import java.text.DecimalFormat; 5 import java.text.NumberFormat; 6 7 /** 8 * 9 * @title DoubleFormatUtil 10 * @describe double 数据类型的精度确定工具类:四舍五入(保留两位小数) 11 * @author 张富昌 12 * @date 2017年4月5日下午9:12:29 13 */ 14 public class DoubleFormatUtil { 15 16 // 1、使用 String 类的静态 format()方法 来确定 double 数据类型的精度 17 public static String userString(double n) { 18 return String.format("%.2f", n); 19 } 20 21 // 2、使用 DecimalFormat 对象的 format()方法 22 public static String userDecimalFormat(double n) { 23 DecimalFormat decimalFormat = new DecimalFormat("#.00"); 24 return decimalFormat.format(n); 25 } 26 27 // 3、使用 BigDecimal 对象的 setScale()方法 28 public static double userBigDecimal(double n) { 29 BigDecimal bigDecimal = new BigDecimal(n); 30 return bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); 31 } 32 33 // 4、使用 NumberFormat 对象的 setMaximumFractionDigits()和format()方法 34 public static String userNumberFormat(double n) { 35 NumberFormat numberFormat = NumberFormat.getNumberInstance(); 36 numberFormat.setMaximumFractionDigits(2); 37 return numberFormat.format(n); 38 } 39 40 // 5、使用 Math 类的静态 round()方法 41 public static double userMath(double n) { 42 return (double) (Math.round(n * 100) / 100.0); 43 } 44 45 }
2、测试double 数据类型的格式化工具类:TestDoubleFormatUtil.java
1 package cn.com.zfc.example; 2 3 import cn.com.zfc.util.DoubleFormatUtil; 4 5 /** 6 * 7 * @title DoubleFormat 8 * @describe double 类型数据类型保留精度 9 * @author 张富昌 10 * @date 2017年4月5日下午9:10:45 11 */ 12 public class TestDoubleFormatUtil { 13 public static void main(String[] args) { 14 double n = 123.23523; 15 System.out.println("原数:" + n); 16 System.out.println("StringFormat:" + DoubleFormatUtil.userString(n)); 17 System.out.println("Math:" + DoubleFormatUtil.userMath(n)); 18 System.out.println("NumberFormat:" + DoubleFormatUtil.userNumberFormat(n)); 19 System.out.println("BigDecimal:" + DoubleFormatUtil.userBigDecimal(n)); 20 System.out.println("DecimalFormat:" + DoubleFormatUtil.userDecimalFormat(n)); 21 } 22 } 23 24