float a = 0.302f; 中后面的f是什么意思

#include <stdio.h>
#include <stdlib.h>
int main()
{
float a = 0.302f;
float b = 1.23002398;
double c = 123;
double d = 78.429;
float e = 128.101;
printf("a=%f \nb=%f \nc=%f \nd=%lf \ne=%lf\n", a, b, c, d, e);
return 0;
}

运行结果:
a=0.302000
b=1.230024
c=123.000000
d=78.429000
e=128.100998

表示这个数是单精度的,而不是双精度的(小数默认是用双精度的)追问

请问float a = 0.302f;
float不是已经定义了 单精度么,

追答

后面的值传的时候也要指定不然就成了将double类型的小数传递给了一个float类型的变量,并非前面定义了,后面就不用写f了,就好比你强行将一个字符串传给一个int类型的变量一个意思

温馨提示:答案为网友推荐,仅供参考
相似回答