您现在的位置:您现在的位置: 一起学 >> 计算机 >> 计算机二级 >> JAVA >> JAVA基础 >> 正文

JavaDouble精度问题

来源:网友上传  2012-4-25 22:48: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;

  }

  }

  //测试用例:

  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

来源:网友上传- JAVA基础

责编:上传用户260384  收藏此页 打印 回到顶部