就是,主要是第2个,问下
//*******1******
float f1 = 1.0f;
double d1 = 1.0;
//*******2******
System.out.println(f1==d1); //输出true
float f2 = 1.1f;
double d2 = 1.1;
System.out.println(f2==d2); //为什么这里输出false??//*******3******
float f1 = 1.1f;
double d1 = 1.1f; //和第2个,这里多了个f
System.out.println(f1==d1);//又输出 true了为什么呢?
//*******1******
float f1 = 1.0f;
double d1 = 1.0;
//*******2******
System.out.println(f1==d1); //输出true
float f2 = 1.1f;
double d2 = 1.1;
System.out.println(f2==d2); //为什么这里输出false??//*******3******
float f1 = 1.1f;
double d1 = 1.1f; //和第2个,这里多了个f
System.out.println(f1==d1);//又输出 true了为什么呢?
解决方案 »
- 我写了个五子棋,麻烦问一下,我如何给图片上加控件啊。在线等。。。
- 想用java编写一个测试打字速度的程序,要用到线程(就像金山打字通那样)
- java高手入 酬谢
- 我刚下了个JDK。请问如何将它嵌入到eclipse中
- 一本不错的书《Java Swing(第二版)》
- exception in thread "main" java.lang.NoClassDefFoundError:hello/class
- 使用Java如何存取DB2的BLOB、CLOB字段?急用。
- **在线等待**,怎样实现鼠标提示信息
- 如何对一段代码文字中的字段进行分析
- 我是JAVA的初学者有这样一个问题想请教各位高手!!!!
- 高手指点 如何在Builder2007的视图里添加菜单栏和菜单
- tomcat2和apache6整合(原创)
1.1是默认的double的1.1,8字节保存double d1 = 1.1f是把float的1.1转换成double的1.1(注意这个转换后的double的1.1和直接写的也是double型的1.1值可能不同)
f1 == d1的时候是把f1转换成double再和d1比较的,这时候两边都是从float的1.1转换过来的double的1.1,所以值相同。
但是,我现在被你说的,就是感觉==很深奥阿
照你最后一句的话,
如果我改成d1==f1,就说明把d1转换成float在和f1比较?