为什么 float 定义初始化时后面要加 F或 f
在c++中,如果float类型定义没有初始化时会自动向更高级的数值类型double转换,当这个数据赋值给float类型的变量时,又要重新转换成float类型才能完成赋值,而这样无疑会多出很多不必要的工作,使代码运行的效率降低。所以我们就要在后面加上f,这个时候系统默认为float类型,此时就不需要连续转换,提高了代码的质量和运行速度。
在Java中,当有多个类型的数值在运算时会默认向最高级的类型转换,基本的等级划分如下:
byte -> short-> char ->int -> long -> float -> double从左到右等级升高。
这么多的类型并不是所有的都默认转换成最高级的double,在仅包含前四种类型byte、short、char、int任意两种类型的运算中,会自动转换成int类型,而不会转换成double类型,如果不止前四种类型参与运算,则最开始说的转换为最高级的规则依然成立。那么为什么float类型定义后面要加F或f呢?因为float每次都要自动默认转换成double类型,为了以示区分,在赋值后面加上F或f加以区分。那为什么要加以区分呢?比如有时候我们会先定义一个float类型变量,再在后面对其赋值,但要是赋值的语句离定义的语句太远时我们可能就难以知道它是float类型的还是double类型的变量,如果加上F或f我们就能很好区分了。