C语言中给float型变量赋值时需要在数值后加f吗?该怎么处理

C语言中给float型变量赋值时需要在数值后加f吗?今天上培训课时,老师说在给float变量赋值时需要在数值后加f

C语言中给float型变量赋值时需要在数值后加f吗?
今天上培训课时,老师说在给float变量赋值时需要在数值后加f
例如:float a=2.01f,这是为什么?
那如果是给double型变量赋值呢?

[解决办法]
float占四个字节,double占八个字节
2.01本身是double型的,
float a = 2.01f
如果没有后面的f,也会实现类型间转换
double a = 2.01没有类型间的转换
[解决办法]
可以不加的,有时候强指,比如用某个重载的函数的时候

float和double不一样啊,一个是单精度浮点数,一个是双精度浮点数
[解决办法]

探讨

引用:

float占四个字节,double占八个字节
2.01本身是double型的,
float a = 2.01f
如果没有后面的f,也会实现类型间转换
double a = 2.01没有类型间的转换

怎么看出2.01就是double型?

[解决办法]
C/C++会选取最小的能表示的类型作为literal的类型。

比如1会默认为char,1000会默认为short,100000000000默认就是long long

浮点数也一样,0.5能用float表示默认就是float,0.1用float没办法表示默认就成了double(当然double也没办法表示,但是总比float精确)
[解决办法]
浮点数一般默认为double型的,而整型一般都默为为int型。