呵呵 经过大家一番讨论 我终于明了
有码有真相:
引处引用芦青马马的证据:
class Demo
{
public static void main(String[] args)
{
int a=6;
float f=3.3f;
float i=a+f;
System.out.print(i);
}
}
根据代码的运算情况:Int 类型的数据与 Float类型数据进行运算的时候,最终是能用float接受的..如果是double类型,赋值会损失精度的..你在好好理解下毕老师的类型转换吧
哈哈 我又中枪了 关于这个问题
byte,short,char->int->float->double
byte,short,char之间不会互相互换,他们三者在计算时首先转换成int类型 是可以套用的规律,引用9#。
恩 问题大概是解决了 楼主最近也是压力比较大 下面由楼主来演示下为何会得出开始时的结论,“剑指毕老爷”。
楼主的测试关键代码如下:
a. int i=6;
b. float f=i+0.3;
c. System.out.print(f);
相信大家现在已经看猫腻了,对吧? 不可轻视了 l f 这样看似微末的东东。
0.3在这里未加f,则表示其是一个double类型的数据,
int 类型的 i 同double 类型的0.3运算,结果铁定是double类型的了
楼主是那种很抠的人 那么在引用类型中 上面的问题会有怎样的表现?
Integer i=new Integer(6);
f=new Float(6+0.3);
System.out.println(f);
请问 f=new Float(6+0.3); 中,(6+0.3)是什么类型?
我一切错误的根源大概就在这里
此为Float封装类的构造方法
public Float(double value)
{
this.value = (float)value;
}
相信大家一看就明白了
(6+0.3)铁定是Double类型了
写这个看似啰嗦的情况是为了再次提醒大家和自己
不会忽略
那些
细枝末节{:soso_e136:}
|