关于java

我昨天看了一本清华大学出版的java书,可是有一个地方不明白,是关于两个数相加的12.45f+15书上的结果为什么是31.45?这是如何算出来的?两个不同的数据类型为什么结果是这个???
难道书上有错?书上的确是31.45!~清华大学出版的java

12.45f是个float
15是个int
一个float和一个int相加时,int会自动转换成float,
所以结果是float 31.45
原则小范围的自动转换成大范围的
byte《short《int《long《float《double
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-02-03
楼上两位,就算是int装成float或是float装成int也好
都不可能算出是31.45吧

楼主是不是看错了 不然就是书的问题
第2个回答  2010-02-03
不是你看错了 就是书上打印错误了
我刚才在myeclipse里面运行了一下
System.err.println(12.45f+15);
结果是27.45
请楼上各位不要想当然,最主要是自己动手运行一下看结果!事实胜于雄辩!
第3个回答  2010-02-03
这里牵涉到一个知识点,叫自动类型转换 float和int相加的话,float会转换为int,然后和15相加,范围小的和大的相加,会自动转换为大的……还有一个叫强制类型转换 你对应着看看那
第4个回答  2010-02-03
int类型和float类型相加,自动转换成了float类型!你是不是写错了?结果怎
么会是31.45,应该是27.45!
第5个回答  2010-02-06
这涉及到自动转化与手动转换的问题。
自己写个例子就完全明白了。