JavaDouble精度问题
来源:优易学  2011-12-21 18:22:08   【优易学:中国教育考试门户网】   资料下载   IT书店

  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;

  }

  }

  //测试用例:

  1。E:\java\lilongfei\java精度问题>java Main

  45.2222

  45.222

  2。E:\java\lilongfei\java精度问题>java Main

  45.000000000000

  45.000

  3。E:\java\lilongfei\java精度问题>java Main

  45.33366666

  45.334

  4。E:\java\lilongfei\java精度问题>java Main

  45555555555555

  45555555555555.000

  5。E:\java\lilongfei\java精度问题>java Main

  0.0000006

  0.000

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训