语句float f=1.3;编译能否通过?

参考解答

不能:1.3字面量是double类型,不能直接赋值给float变量,float字面量需要加F(也可以是f)

float f = 1.3F;

或者使用强制类型转换:

float f=(float)1.3;

追问:float f = 1; 编译能否通过?

参考解答

能。与上一问不同的是1字面量是int整型,可以赋值给float,此时发生了自动类型提升。

追问:下面的哪些赋值语句是不正确的 ?

A.float f=11.1;
B.double d=5.3E12;
C.double d=3.14159;
D.double d=3.14D; E.long l=0xfffL;

参考解答

A 错误
B 是利用了科学计数法表示的双精度小数,合法;
C 双精度小数,可以省略之后的D,合法;
D 双精度小数,也可以保留D后缀,合法;
E 长整型整数,不能省略最后的L后缀,0x前缀表示该数字是16进制,合法

results matching ""

    No results matching ""