c语言中float和float型相乘得什么类型?

float型数据的计算的结果是什么类型?与其他类型数据计算时转换成什么类型?两个float型相加减乘除得什么型?一个float与其他类型计算呢?晕了。。。纠结,能不能系统地给讲讲啊?

float与float相乘运算,为避免丢失精度,运算结果类型提升为double类型。

float是C语言中的一个数据类型的关键字,表示单精度浮点型(双精度浮点型为double)。

定义格式为:floata;//a表示一个浮点型的变量。

C语言规定浮点型在内存占用4个字节,精度为7位,取值范围为:3.4*10^-38~3.4*10^38或者-(3.4*10^-38~3.4*10^38)。

扩展资料

FLOAT构成

浮点数在机内用指数型式表示,分解为:数符,尾数,指数符,指数四部分。

数符占1位二进制,表示数的正负。

指数符占1位二进制,表示指数的正负。

尾数表示浮点数有效数字,0.xxxxxxx,但不存开头的0和点。

指数存指数的有效数字。

指数占多少位,尾数占多少位,由计算机系统决定。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-04
C语言中规定,float 与float相互运算时,为避免丢失精度,结果类型提升为double类型。
其中的运算包括所有数学运算,即加减乘除。

这样做的好处是,不会出现因为计算而引起的溢出或精度丢失。
如两个很大的float数相乘,或两个绝对值很小的float数相乘,前者可能导致溢出,而后者则可能出现数值过小超出float表示范围。
升级为double后,就可以确保不会出现这两种情况。然后再根据赋值情况,转换为需要的值。
第2个回答  推荐于2017-09-23
C语言的类性转换规则,自动转换时是低类型向高类型转换,而强制转换也可以将高类型转换为低类型,但可能造成信息丢失。低类型是内存中占用字节数少的数据类型,即通常所说的窄类型,但是占用相同字节数的数据类型也有高低之分,比如long和unsigned long都占4个字节,但是表达式中同时有long和unsigned long时,先把long转换为unsigned long,然后再参与运算。
参照这个下面关系图来转换:
char和short → int → unsigned int → long → unsigned long → float → double → long double
注意:表达式中的float型变量不会自动转换为double型!!!这一条规则在C89中就已明确。但是很多教材采用了传统C的说法——“float将自动转换为double,然后再参与运算”,这对于理解C语言没有本质的不同,但是却是错误的。

至于你的问题:就是最高类型为float的表达式中,其他类型(也就是上面那个关系图float前面的数据类型)的数据转换为float型数据,例如int*float,则将int转换为float,最后的结果为float型,当然有double类型的表达式中,最后结果为double型本回答被提问者和网友采纳
第3个回答  2012-06-08
表达式中,要求两个操作数的类型一致,如果不一致,系统会自动将低类型操作数转换成另一个高类型操作数的类型,再进行运算,规则如下:
short、char-->int-->long->unsigned long-->float-->double-->long double
第4个回答  2015-09-16
float类型,double和float会为double,如果不强制转换赋值的话,和存储有关,以最大存储为最先

c语言中float和float型相乘得什么类型?
float与float相乘运算,为避免丢失精度,运算结果类型提升为double类型。float是C语言中的一个数据类型的关键字,表示单精度浮点型(双精度浮点型为double)。定义格式为:floata;\/\/a表示一个浮点型的变量。C语言规定浮点型在内存占用4个字节,精度为7位,取值范围为:3.4*10^-38~3.4*10^38或者-(...

double,int,float间计算之后得到什么类型如何判断
在编程时,了解数据类型间的运算结果至关重要。以浮点数类型为例,float与float相乘时,为避免精度损失,运算结果类型会提升为double类型。float是C语言中单精度浮点型的标识,而double则是双精度浮点型。定义float类型变量的方式为:floata;,这里的a为变量名。按照C语言规定,float类型在内存中占用4个字...

c中整型和浮点型的运算结果是什么类型?
c语言中整型和浮点型混合运算的结果为double型(双精度浮点类型)。c语言中如果一个运算符两边的运算数类型不同,先要将其转换为相同的类型,即较低类型转换为较高类型,然后再参加运算,转换规则:float(浮点型)转化为double(双精度浮点类型)、int(整型)转为unsigned(无符号整型)转为long(长整...

C语言中的乘法运算中乘数和被乘数的类型必须一致吗
比如:int x,b; char a; x=a+b;两个数据中一个是char型一个是int型,由于int型占用字节数大于char型所以进行强制数据类型转换后再进行运算,相当于x=(int)a+b;同样举例:float a; double b,x,c; x=a*b;相当于c=(double)a; x=c*b;...

c语言中float和double运算时结果相同吗?
.当混合不同类型的变量进行计算时,便可能会发生类型转换 相同类型的数据在转换时有规则可循:字符必须先转换为整数(C语言规定字符类型数据和整型数据之间可以通用) short型转换为int型(同属于整型)float型数据在运算时一律转换为双精度(double)型,以提高运算精度(同属于实型) 赋值时,一律是右...

c语言中int类型float类型double类型变量做加减运算结果是什么类型?
如果操作数中有一个是double类型,则运算结果也将是double类型。如果操作数中有一个是float类型,而另一个是double类型,则运算结果将是double类型。如果操作数中没有double类型的变量,则运算结果将是float类型或int类型,具体取决于操作数的类型。对于加法运算,如果操作数中有一个是float类型,而另一个...

C语言中int型数据和float型数据做加减运算结果为什么类型?
float型c编译系统会自动向高精度类型进行转化。

c语言 一个字符型的数据与一个float型的数据运算,结果是什么类型,为 ...
怎么都说float型呢?应该是double型。double也是浮点型,但是范围比float广。《C程序设计(第二版)》谭浩强著,54页,上边写得很清楚的。百分百是double型。至于为什么是double嘛?规律定成这样的,没为什么的。做多了习惯就好。

c语言运算有整型常量和单精度浮点型其结果是什么型?
结果会是:单精度浮点型。在c语言中,若参与运算量的类型不同,则先转换成同一类型,然后进行运算。转换按数据长度增加的方向进行,以保证精度不降低。如int型和float型运算时,先把int量转成float型后再进行运算。

C语言如何判断函数的类型 fff(float x ) {printf("%d\\n",x*x);}...
例如 函数头部为int f(),这样的话,返回值类型为int型;又如头部为double f()的话,返回值类型为double型;头部为char *f()的话,返回值为char *,即指向char的指针 特别的,如果函数头部没有显示的说明返回值类型,则在C中一般是默认当作返回int型,如f(),则返回值类型为int型 ...

相似回答