关于JAVA的精确度

关于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进制考虑的*
*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值