浮点数表示法利用科学计数法来表达实数(real),当计算的表达式有精度要求时被使用。例如,计算平方根,或超出人类经验的计算如正弦和余弦,它们的计算结果的精度要求使用浮点型。在IEEE标準754之前,业界并没有一个统一的浮点数标準,直到1985年Intel打算为其的8086微处理器引进一种浮点数协处理器时,才请加州大学伯克利分校的 William Kahan教授──最优秀的数值分析家之一来为8087 FPU设计浮点数格式; 而这个家伙又找来两个专家来协助他,于是就有了KCS组合(Kahan, Coonan, and Stone)。他们共同完成了Intel的浮点数格式设计,而且完成地如此出色,以致于IEEE组织决定採用一个非常接近KCS的方案作为IEEE的标準浮点格式。目前,几乎所有计算机都支持该标準,大大改善了科学应用程式的可移植性。C标準规定的浮点型有float、double、long double,和整型一样,既没有规定每种类型占多少位元组,也没有规定採用哪种表示形式。浮点数的实现在各种平台上差异很大,有的处理器有浮点运算单元(FPU,Floating Point Unit),称为硬浮点(Hard-float)实现;有的处理器没有浮点运算单元,只能做整数运算,需要用整数运算来模拟浮点运算,称为软浮点(Soft-float)实现。大部分平台的浮点数实现遵循IEEE 754,float型通常是32位,double型通常是64位。 long double型通常是比double型精度更高的类型,但各平台的实现有较大差异。在x86平台上,大多数编译器实现的long double型是80位,因为x86的浮点运算单元具有80位精度,gcc实现的long double型是12位元组(96位),这是为了对齐到4位元组边界,也有些编译器实现的long double型和double型精度相同,没有充分利用x86浮点运算单元的精度。其它体系结构的浮点运算单元的精度不同,编译器实现也会不同,例如PowerPC上的long double型通常是128位。