1.C语言中float是什么意思
float是C语言的基本数据类型中的一种,表示单精度浮点数。
C语言规定单精度浮点型在内存占用4个字节,精度为7位,取值范围为:3.4*10^-38 ~3.4*10^38或者-(3.4*10^-38 ~3.4*10^38)
可以定义单精度浮点型变量,如float a;即定义了一个电精度浮点型变量a。相关类型:double表示双精度浮点数。
扩展资料:
构成:
浮点数在机内用指数型式表示,分解为:数符,尾数,指数符,指数四部分。
数符占 1 位二进制,表示数的正负。
指数符占 1 位二进制,表示指数的正负。
尾数表示浮点数有效数字,0.xxxxxxx, 但不存开头的 0 和点。
指数存指数的有效数字。
指数占多少位,尾数占多少位,由计算机系统决定。
区别:
可根据应用程序的需求将变量声明为 float 或 double。这两种类型之间的主要差异在于它们可表示的基数、它们需要的存储以及它们的范围。
在 C 和 C++ 中,如下赋值语句:
1 float a=0.1;
编译器报错:warning C4305: 'initializing' : truncation from 'const double ' to 'float '
原因:在 C/C++ 中,上述语句等号右边 0.1,认为是个 float,但是编译器却把它认为是个 double(因为小数默认是 double),所以要报这个 warning,一般改成0.1f就没事了。
参考资料:
百度百科-float
2.C语言中float double的用法是什么
float f,c;//这里改成double 结果出错, 因为你下面scanf中用的是%f,double应该是%lf
scanf("%f",&f);
c=(5.0/9)*(f-32);//这里的5.0改成5 结果也出错 但其它的9与32又不用变9.0和32.0呢?
因为你的 f 是浮点型,所以,计算 f - 32时就会,将32自动转型为浮点型
而5与9任意变其中一个为浮点型都可以,如5.0/9或5/9.0,结果都是浮点型(另一个自动转型 )
但是5/9,不行,因为整数相除,取整,结果就为0了。
3.请教一下有关C语言用(float)强制转换的用法
你到底想干嘛?printf("%d")输出的永远是整数。
double number=2.5;
float value;
value=(float)number;
printf("%f\n",value);
强制转换要求与目标类型相同
不同类型之间可以强制转换,但可能有损失,比如
把float value=2.5,强制转换为int a=(int)value,就会损失小数部分。所以能不进行强制转换,就尽量不要用。
转载请注明出处育才学习网 » c语言float怎么用