黑马程序员技术交流社区

标题: 除数为0不报错 [打印本页]

作者: 傅荣康    时间: 2011-7-29 23:26
标题: 除数为0不报错
float num1=3;
            int num2=0;
            System.out.print(num1/num2);

怎么不报错    不是除数不能为0吗,怎么会不报错  结果还是无穷大
作者: 匿名    时间: 2011-7-29 23:32
你把num1改成int型,应该就正常了。不然num2就自动转化为float了。而浮点数存储机制,则成了最小的,运算结果为最大了
作者: 匿名    时间: 2011-7-30 00:05
标题: 简单数据类型的转换
[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]
作者: 匿名    时间: 2011-7-30 00:35
编译阶段只是检查你的程序语法对不对,这个除0是运行时候的异常
作者: 匿名    时间: 2011-7-30 00:36
编译阶段只是检查你的程序语法对不对,这个除0是运行时候的异常




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2