float类型的变量赋值后为什么必须在值后加"f"/“F” float x = 3.4F; 这里将“3.4”赋值给float类型的变量x,如果不加F,系统会默认把赋值的数字当作double类型处理 1,然后在把这个double类型的值赋给float类型,这样就会出现精度丢失。 float y = 3F; 这里将“3”赋值给float类型的变量y,如果将整数类型的“3”赋值给float,系统会自动将其转化为double类型1,然后再赋值给float类型,这样虽然会编译成功,但会导致精度缺失。 常量存储在常量缓冲区中,有且只有一份,常量缓冲区中的值默认空间大小,如果是整数,默认空间大小为32bit----int,如果是小数,默认空间大小为64bit----double。 ↩︎ ↩︎