JAVA浮点数类型的定义问题

A. Float foo = -1;
B. Float foo = 1.0;
C. Float foo = 42e1;
D. Float foo = 2.02f;
E. Float foo = 3.03d;
F. Float foo = 0x0123;
多选 选哪个???为什么???谢谢

你好,你问的问题很刁钻(^-^),我测试了一段时间,小有总结:
1.如果声明的是float基本数据类型,允许将int赋值给float(原因是int和float都是4个字节,不丢失精度),不允许double赋给float(丢失精度)。在此种情况下,可以选A,D,F

2.题目是声明Float,就是属于包装类自动装箱问题了。
Float foo=a 就等价于Float foo=new Float(a);
其中参数a必须是float类型(数值f结尾才算float类型),否则会报错。这种情况下,
A:-1属于int类型 B:1.0属于double类型 C:42e1属于double类型 D:2.02f属于float 类型
E:3.03d属于double类型 F.0x0123属于int类型
可见,只有D是正确
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-10-07
Float --->应该写为float
A. Float foo = -1; 错误, float foo = -1f;
B. Float foo = 1.0; 错误float foo = 1f
C. Float foo = 42e1; 错误,科学计数法后是double类型
D. Float foo = 2.02f; 正确
E. Float foo = 3.03d; 错误,没有d定义
F. Float foo = 0x0123;错误,编译没有问题,但是实际为整数
第2个回答  2011-10-07
你好,仍然是单选题,我都测试过了,只有D是正确的。本回答被提问者采纳