C语言单精度与双精度的区别?

2024年11月22日 09:45
有5个网友回答
网友(1):

其实就是有效位数不一样。
浮点型变量分为单精度(float)、双精度(double)和长双精度(long double)3类。在Turbo C 中:
比特(位)数 有效数字
float 32 6-7
double 64 15-16
long double 128 18-19
ANSI C 并未具体规定每种类型数据的长度、精度、数值范围,有的系统将double所增加的32位全用于存放小数部分,这样可以增加数值的有效范围,减少舍入误差。有的系统则将所增加的位(bit)一部分存放指数部分,这样可以扩大数值范围

网友(2):

C中没有单精度的说法,一般就叫浮点型float。双精度是double,这两个的区别是在WIN32和LINUX下,float类型占4字节,double类型占8字节,因为double占8字节,自然双精度的有效数据位比float类型多,更精确

网友(3):

单精度实型 float 占4个字节
能保证6位有效数字,取值范围为-3.4*10的-38次方至3.4*10的38次方。

双精度实型 double 占8个字节
能保证15位有效数字,取值范围为-1.7*10的-308次方至1.7*10的308次方

网友(4):

占用内存空间不一样,单精度4字节,双8……

网友(5):

精度不一样 位数不一样啊