就是,主要是第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了为什么呢?
解决方案 »
- 泛型研究-继承 的一个问题?
- 如何让线程在运行一段时间后,如果运行超过指定时间,就让该线程停止!
- hql语句问题
- 一个完整地spring这么做对吗?
- 请问到底怎样使用enum,谢谢指教
- 请问如何拆分字符串!
- 想问大家个问题:怎样实现从配置文件读取某变量后以该变量的值为类名创建该类并调用该类的某一方法,本人急用,先谢了
- 老子毕业前四个月到深圳,cjol上投了10000多份简历,平均每天投300多份,我容易吗我
- Java基本功,看看这个会显示什么
- 如何将String类的字符串 赋值给Char【】数组?
- 高手指点 如何在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比较?