其实就是有效位数不一样。
浮点型变量分为单精度(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)一部分存放指数部分,这样可以扩大数值范围
C中没有单精度的说法,一般就叫浮点型float。双精度是double,这两个的区别是在WIN32和LINUX下,float类型占4字节,double类型占8字节,因为double占8字节,自然双精度的有效数据位比float类型多,更精确
单精度实型 float 占4个字节
能保证6位有效数字,取值范围为-3.4*10的-38次方至3.4*10的38次方。
双精度实型 double 占8个字节
能保证15位有效数字,取值范围为-1.7*10的-308次方至1.7*10的308次方
占用内存空间不一样,单精度4字节,双8……
精度不一样 位数不一样啊