JavaDouble的精度问题

2014-11-23 21:41:25 · 作者: · 浏览: 54

  java.text


  类 DecimalFormat


  java.lang.Object


  java.text.Format


  java.text.NumberFormat


  java.text.DecimalFormat


  void setMaximumFractionDigits(int newValue) 设置某个数的小数部分中所允许的最大数字位数。


  void setMinimumFractionDigits(int newValue) 设置某个数的小数部分中所允许的最小数字位数。


  //Main.java


  import java.util.*;


  import java.text.*;


  public class Main{


  public static void main(String [] args){


  try{


  Scanner input=new Scanner(System.in);


  double n=input.nextDouble();


  System.out.println(SicenToComm(n));


  }catch(Exception e){


  }


  }


  public static String SicenToComm(double value) { //保留小数点后3位(四舍五入),且不按科学计数法输出


  String retValue = null;


  DecimalFormat df = new DecimalFormat();


  df.setMinimumFractionDigits(3);


  df.setMaximumFractionDigits(3);


  retValue = df.format(value);


  retValue = retValue.replaceAll(",", "");


  return retValue;


  }


  }