java 保留小数点后指定位数四种方法
1 package com.itheima_01;- 2
- 3 import java.math.BigDecimal;
- 4 import java.text.DecimalFormat;
- 5 import java.text.NumberFormat;
- 6
- 7 public class Demo03 {
- 8 public static void main(String[] args) {
- 9 /*
- 10 保留指定小数点后位数
- 11 */
- 12 double a = 1.0123456789123456789;
- 13 //方法一:最简单的方法,调用DecimalFormat类
- 14 //指定保留小数点后几位
- 15 DecimalFormat df = new DecimalFormat(".0000000000");
- 16 //转换
- 17 String str = df.format(a);
- 18 //String转double
- 19 double v = Double.parseDouble(str);
- 20 System.out.println(v);
- 21
- 22 //方法二:直接通过String类的format实现
- 24 String str2 = String.format("%.10f", a);
- 25 double v2 = Double.parseDouble(str2);
- 26 System.out.println(v2);
- 27 //方法三:通过BigDecimal实现
- 28 BigDecimal bd = new BigDecimal(a);
- 29 double v1 = bd.setScale(11, BigDecimal.ROUND_HALF_UP).doubleValue();
- 30 System.out.println(v1);
- 31
- 32 //方法四:通过NumberFormat类实现
- 33 NumberFormat nf = NumberFormat.getNumberInstance();
- 34 nf.setMaximumFractionDigits(12);
- 35 String s = nf.format(a);
- 36 double v3 = Double.parseDouble(s);
- 37 System.out.println(v3);
- 38
- 39
- 40 }
- 41 }