C语言的数据类型→浮点型数据 有效位数

 

            C语言编译系统把一个浮点型数据分成小数部分指数部分分别存放,第一位是用来存放符号的,接下来是小数部分,最后是指数部分,而精度指的是小数部分的占的位数。


    一个float是32位的,符号占一位,有效数字(即小数部分)占6位,剩下的是指数部分的位数,所以他的最大值可以是3.4E38。


    一个double是64位的,符号占一位,有效数字占15位,剩下的是指数部分的位数,所以他的最大值能达到1.7E308。


    123456.7890000如果是用float类型的话,小数点后面都是无意义的,因为float接受7位的,而后面部分已经超过7位了,不能准确的表示出来,所以这里的接受是指能正确表达小数的7位有效数字 。

C语言的数据类型→浮点型数据 有效位数

例如:

C语言的数据类型→浮点型数据 有效位数

运行结果:

C语言的数据类型→浮点型数据 有效位数

            由于a 是单精度浮点型,有效位数只有七位。而整数已占五位,故小数二位之后均为无效数字。(就是2131那部分)。
    b 是双精度型,有效位为十六位。应该显示全部小数,但是!Turbo C 规定小数后最多保留六位,其余部分四舍五入。