关于JAVA的精确度

原创 2005年03月01日 12:20:00

关于JAVA的精确度

Java

/*
*关于JAVA的精确度*
*书上云:float的精确度是7位,double的精确度为17位*
*摘自《BEGIN JAVA 2》JAVA入门经典                *
*但下面的程序却让我对此产生了怀疑                *
*/
public class Yasa{
 public static void main(String arg[]){
  /*测试十一分之一的结果*/
  int m=1;
  int n=11;
  float o=(float)m/n;
  double p=(double)m/n;
  System.out.println("1/11 in float="+o+"/n"+"1/11 in double="+p);
  /*测试十一分之十二的结果*/
  int e=12;
  int f=11;
  float g=(float)e/f;
  double h=(double)e/f;
  System.out.println("12/11 in float="+g+"/n"+"12/11 in double="+h);
  /*测试三分之一的结果*/
  int a=1;
  int b=3;
  float c=(float)a/b;
  double d=(double)a/b;
  System.out.println("1/3 in float="+c+"/n"+"1/3 in double="+d);
  /*测试三分之四的结果*/
  int w=4;
  int x=3;
  float y=(float)w/x;
  double z=(double)w/x;
  System.out.println("4/3 in float="+y+"/n"+"4/3 in double="+z);
 }
}
/*运行结果:*
*1/11 in float=0.09090909             为8位*
*1/11 in double=0.09090909090909091   为17位*
*12/11 in float=1.0909091             为7位*
*12/11 in double=1.0909090909090908   为16位*
*1/3 in float=0.33333334              为8位*
*1/3 in double=0.3333333333333333     为16位*
*4/3 in float=1.3333334               为7位*
*4/3 in double=1.3333333333333333     为16位*
*================================*
*运行结果尺度不一,这说明精确度不是基于10进制考虑的*
*/

相关文章推荐

JAVA开发中的那些事(7)-------关于小数精确度

今天碰到了一个我之前从来都没有认为会是问题的问题,就是小数精确度问题,像1.0、...

Java 数据精确度处理&Mach类

Math.rint()   a = Math.rint(a); 返回最接近参数的整数,如果有2个数同样接近,则返回偶数的那个。它有两个特殊的情况:1)如果参数本身是整数,则返回本身。2)如果不是数字...

數值的精確度

  • 2013年01月22日 11:50
  • 54KB
  • 下载

关于C#timer 时间精确度的问题

转自:http://bbs.csdn.net/topics/390952917 我想用精确的时间计算,需要精确到毫秒级别,代码运行后发下有误差。请教高人怎么实现。 C# code ...

hrPING-高精确度的Ping工具

  • 2009年12月04日 11:12
  • 251KB
  • 下载

关于c语言组合数精确度问题

最近遇到几个组合数的问题,wu

PMV-PPD程序,精确度很高。

  • 2010年11月09日 09:50
  • 2KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于JAVA的精确度
举报原因:
原因补充:

(最多只允许输入30个字)