黑马程序员技术交流社区
标题:
关于整数类型和浮点类型 有个程序求教一下
[打印本页]
作者:
荣凯旋
时间:
2011-12-9 17:34
标题:
关于整数类型和浮点类型 有个程序求教一下
本帖最后由 荣凯旋 于 2011-12-12 11:50 编辑
class Demo
{
public static void main(String[] args)
{
float f = 1.25f;
double d = 2.25;
System.out.println(f+d);
}
}
自己写的编译也能通过,但就是没有结果 我也相信不会有结果
但为什么我在一个视频上看到有人运行这个程序结果就是3.5呢
为什么呢
作者:
◇半度微凉
时间:
2011-12-9 17:40
呵呵!因为float数据类型参与运算的时候,系统会先将它自动转换成double类型再进行运算,所以你上面代码中就相当于两个double类型的数据进行运算,所以运行后的正确结果当然会是double类型的3.5了!
作者:
荣凯旋
时间:
2011-12-9 17:51
谢了伙计~是我刚把文件编译错了,结果就是3.5 没错~
作者:
郝亚平
时间:
2011-12-9 17:54
float--4字节--小碗。
double--8字节--大碗。
float和double两者一同运算,内存空间需求,会自动类型提升——”小碗变大碗“。float类型变身double类型。
我在自己机子上试试,结果3.5。小数默认是double类型的。
楼上正解。
作者:
◇半度微凉
时间:
2011-12-9 17:55
呵呵 客气客气!{:soso_e183:} 一块儿学习!多多交流!{:soso_e130:}
对了,既然问题已经解决了,别忘了把帖子改成已解决啊!不然你没分的!嘿嘿···
作者:
刘基军
时间:
2011-12-9 18:14
把我一吓,怎么不是3.5呢,还验证了一遍。。。{:soso_e126:}
作者:
王青山
时间:
2011-12-9 20:02
楼主你好,这道问题是有答案的,就是3.5嘛。你懂得。
当float与double俩种类型的值进行运算时,
计算机会自动将float提升为double型,
这种转换叫做自动类型转换,也叫隐式类型转换。
作者:
李明
时间:
2011-12-9 23:26
肯定是3.5啊,不同类型之间运算自动向高级类型的转换的啊,结果肯定是double类型3.5了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2