设为首页 加入收藏

TOP

Java Double的精度问题
2014-11-24 02:40:58 来源: 作者: 【 】 浏览:1
Tags:Java Double 精度 问题

 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源码 下一篇Java聊天窗口的实现

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: