C语言中 double和float 的区别
发布网友
发布时间:2023-12-05 21:10
我来回答
共4个回答
热心网友
时间:2024-11-07 08:49
单精度浮点数在机内占4个字节,用32位二进制描述。
双精度浮点数在机内占8个字节,用64位二进制描述。
对编程人员来说,double 和 float 的区别是double精度高,有效数字16位,float精度7位。但double消耗内存是float的两倍,double的运算速度比float慢得多,C语言中数学函数名称double 和 float不同,不要写错,能用单精度时不要用双精度(以省内存,加快运算速度)
还有
double类型存储机制问题,64位是这样存储的:
1位符号位,11位指数位,52位尾数位。
因此,
(1)将2.2转换成二进制为10.00110011...
(2)将10.00110011...转换成指数形式为1.000110011...*2^1;
(3)开始正式转换,符号位为0,表示为正;
(4)指数位为000,0000,0001,表明指数为2^1;
(5)尾数位为0001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1,最后一位1是第53位;
(6)显然,最后是要进上去的。
因此,2.2f转换成2.2d是变大的。
热心网友
时间:2024-11-07 08:49
这两个不是函数,是数据类型.float是单精度实型,用4个字节存储 double是双精度实型,用8个字节存储。在进行程序运算时,float型数据一律转换为double型数据,为自动类型转换。所以结果一样。但float,double两种类型数据精度不同,float型有效数字位数为6~7位,double为15~16位,二者有区别
热心网友
时间:2024-11-07 08:50
double表示的范围更大,比较大的数,如整数部分十几万的,都需要用double的
热心网友
时间:2024-11-07 08:50
两个类型的精度不同。
double精度高,有效数字16位,float精度7位。但double消耗内存是float的两倍,double的运算速度比float慢得多,在不确定的情况下还是尽量用double以保持正确性.