A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 傅荣康 黑马帝   /  2011-7-29 23:26  /  2608 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

float num1=3;
            int num2=0;
            System.out.print(num1/num2);

怎么不报错    不是除数不能为0吗,怎么会不报错  结果还是无穷大

评分

参与人数 1技术分 +1 收起 理由
admin + 1 看看大家的回答!

查看全部评分

4 个回复

倒序浏览
黑马网友  发表于 2011-7-29 23:32:53
沙发
你把num1改成int型,应该就正常了。不然num2就自动转化为float了。而浮点数存储机制,则成了最小的,运算结果为最大了

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-7-30 00:05:39
藤椅

简单数据类型的转换

[code=java]float num1=3;
            int num2=0;
            System.out.print(num1/num2); //因为float的精度比int的精度高,num2自动转换为float数据类型,num2的值为0.0,3.0/0.0 等效应于3除以一个无限接近0的float类型的数据,结果就是无限大了。[/code]简单数据类型之间的转换
  在Java中整型、实型、字符型被视为简单数据类型,这些类型由低级到高级分别为(byte,short,char)--int--long--float--double

    简单数据类型之间的转换又可以分为:
  ●低级到高级的自动类型转换[code=java]byte b;
int i=b;
long l=b;
float f=b;
double d=b;[/code]●高级到低级的强制类型转换[code=java]float a = 2.0f;

int b = (int)a;//b=2,而非2.0[/code]●包装类过渡类型能够转换[code=java]float f1=100.00f; //f1是基本数据类型
  Float F1=new float(f1); //F1是引用类型,也即包装类
  Double d1=F1.doubleValue();
//F1.doubleValue()为Float类的返回double值型的方法[/code]

评分

参与人数 1技术分 +6 收起 理由
admin + 6 回答得很细!

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-7-30 00:35:01
板凳
编译阶段只是检查你的程序语法对不对,这个除0是运行时候的异常
回复 使用道具 举报
黑马网友  发表于 2011-7-30 00:36:03
报纸
编译阶段只是检查你的程序语法对不对,这个除0是运行时候的异常
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马