1. public static void main(String[] args)
2. {
3. Character s=1;
4. Float f=1;
5. }第3行和第4行都有一个包装类,编译器执行autoboxing将1转换为Character,但编译器无法将相同的1转换为Float。为什么?
发布于 2013-12-17 15:05:07
浮点型数字需要在数字末尾附加'f‘或'F’,就像这样的Float f=1f;或Float f=1F;
发布于 2013-12-17 15:06:37
这是因为,默认情况下,它将是一个double。您需要为浮点数加上F或f后缀,才能使其成为float。例如:Float f = 1f;
§JLS 3.10.2
如果以ASCII字母F或f作为后缀,则浮点文本的类型为float;否则,它的类型为double,并且可以选择以ASCII字母D或D作为后缀(§4.2.3)。
https://stackoverflow.com/questions/20627911
复制相似问题