double和float哪个精度更高
c语言float与double的取值区别?
c语言float与double的取值区别?
区别:
1、精度不一样,float是单精度,double是双精度;
2、表示小数的范围不一样,double能表示的范围比float大;
3、double在内存中,占8个字节,float在内存中,占4个字节。
float:浮点型数据类型,FLOAT 数据类型用于存储单精度浮点数或双精度浮点数。
浮点数使用 IEEE(电气和电子工程师协会)格式。浮点类型的单精度值具有 4 个字节,
包括一个符号位、一个 8 位 二进制指数和一个 23 位尾数。由于尾数的高顺序位始终为 1,
因此它不是以数字形式存储的。此表示形式为 float 类型提供了一个大约在 -3.4E 38 ~ 3.4E 38 之间的范围。
double:双精度浮点型,此数据类型与单精度数据类型(float)相似,但精确度比float高,
编译时所占的内存空间依不同的编译器而有所不同,是double float数据类型,C/C 中表示实型变量的一种变量类型。
float型数据有几位有效数字?
float型数据的有效数字是6~7位
C语言中浮点型一般分为float单精度型、double双精度型、long double长精度型,单精度浮点型小数点后面有效数字为6~7位和双精度浮点型小数点后面有效数字为15~16位。单精度为32位,双精度为64位,8位为一个字节。
float与double用法?
float和double的精度是由尾数的位数来决定的。浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”,由于它是不变的,故不能对精度造成影响。 float:2^23 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字; double:2^52 4503599627370496,一共16位,同理,double的精度为15~16位。 因为float最多能有7位有效数字, float x 51539607552,减去1000后,有效数字不变,double x为11位可以计算。
c语言 float 和double相加后是什么类型?
一、结论
c语言 float 和double相加后是:double型
二、解释
float是单精度类型,double是双精度类型,安精度分,double类型比float类型精度更高,所以两个类型计算后,会自动向精度更高类型转换。
三、拓展
C语言中,两个类型的数据计算,会把精度低的类型自动转换成精度高的类型,然后计算。