float
C语言规定,float类型最少能表示六位有效数字,而不是精确到小数点后六位,且取值范围至少是
10^-37~10^37。通常系统存储一个浮点数需要32位,其中8位由于表示指数的值和符号,剩下的表示非指数部分(也叫尾数或有效数)和符号。
(意为双精度浮点型)double
double最小的取值范围和float一样,但它最少表示10位有效数字。一般情况下,double占用64位而不是32。一些系统,把多出来的32位全部表示非指数部分,这不仅增加了有效数字的位数(提高了精度),而且减少了舍入误差。另一些系统把一些位分配给了指数部分,以容纳更大的指数,增大表示数的取值范围。无论哪种,double最少表示13位有效数值,超出了标准的最低位数。
long double
它满足比double类型更高的精度要求,但C语言只保证它和double的精度相同