JavaSE基础之double数据类型的格式化

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  
posted @ 2017-04-05 21:40  勇闯天涯zfc  阅读(6668)  评论(0编辑  收藏  举报