c语言中,float浮点型不是可以确定的有效位数是7位么?为什么定义float 123.456,输出后是123.456001?

如题所述

浮点数的范围是:2^(-32)到2^32-1
至于输出结果,C语言默认的是输出输出8位(包括整数部份,小数点,小数总价),你也可以设置输出其它位数的结果。
32位说的是在内存中分配32 bit的空间来存储数据。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-06-26
好像没有人说确定有效位数是7位。一般默认是保留小数点后6位,当然你也可以改
第2个回答  2011-06-26
是6位,不是7位,学计算机很忌讳钻牛角尖的,记住就行了,不要深究。
第3个回答  2011-06-26
这个与机器软件系统有关
第4个回答  2011-06-26
问百度

...是7位么?为什么定义float 123.456,输出后是123.456001?
浮点数的范围是:2^(-32)到2^32-1 至于输出结果,C语言默认的是输出输出8位(包括整数部份,小数点,小数总价),你也可以设置输出其它位数的结果。32位说的是在内存中分配32 bit的空间来存储数据。

C语言中的有效数字怎么定义的?例如123.456的有效数字是从1开始还是从4...
C语言中的有效位数不是平时我们说的小数点后面的有效数字,而是指所有的数字,比如:123.456是从1开始的。如果数据类型是float型,那么有效位数是7位,也就是说存储float b=123.4567891;只能保证前7位是正确的,即我们取出b时它的前7位完全没问题就是123.4567,但是后面的就不知道是什么了。如果是d...

C语言,float有效位为7位的问题。
float 有效数字位数是7位,不叫有效位, 不包含 小数点,也不包含 领头的0。例如: 1.234067, 0.1234067, 1234067.00, 0.001234067 -- 其中 1234067 是有效数字。也就是用科学记数法时,不考虑指数。7.2f , 7---总的长度(应当叫 场宽) ,含小数点,含正负号。

为什么c语言中定义一个变量f=123.456,printf("%f",f)时结果是123.456001...
float float,浮动的。:D 人类社会使用十进制,所以输入,输出都是按十进制来的。而计算机中采用二进制,所以,你输入的数要转化为二进制存储。十进制表面上的123.456,用二进制远不能用23个二进制比特位的尾码精确存储,只能四舍五入的转化为二进制存储。当取出时就不能还原原本的十进制123.456,...

C语言浮点变量分类
简单来说,Float为单精度,内存中占4个字节,有效数位是7位(因为有正负,所以不是8位),在我的电脑且VC++6.0平台中默认显示是6位有效数字;double为双精度,占8个字节,有效数位是16位,但在我的电脑且VC++6.0平台中默认显示同样是6位有效数字(见我的double_float文件)还有,有个例子:在C...

...4567001,%f输出有效字符不是只有七位吗?为什么十位,后面的001是怎 ...
有效数字是7位,但是为了防止你给的数值位数太多的情况,它还是会输出到小数点后7位。但是只能保证数值的前7位是准确的,之后就是未知了。

为什么输出a的值为123.456001,而不是123.456000
这是计算机本身决定的,float型、double型的这种浮点数,在精度上不可能完全精确,运算过程中有一定精度丢失。但不会丢失太多.. 比如6位小数的float丢失的是7位和以后的..

C语言之浮点型
浮点数包括float和double两种类型,float占32位,double占64位。其二进制存储格式遵循IEEE754标准。以float为例:符号位:正数为0,负数为1。以float型数据123.456为例,分析其二进制存储格式。首先将十进制数123.456转换为二进制数为:1111011. 01110100101111001 (其中0.456如何转换为二进制?不断乘以...

c语言中printf("%6.4f\\t",123.456)输出什么?为什么?
6表示输出总的位数,超过6位则输出实际位数,不足则以空格补齐,右对齐 4表示小数点保留后4位。不足4位补0.小数点占1个位数。所以整数位只有1位 123.456整数位超过,按实际位数所以输出 123.4560 printf("%9.4f\\t",123.456);的时候输出 1个空格+123.456 ...

C语言float f=123.456
g是会在%f和%e之间选择最短的一个形式输出,并且会省略那些无意义的0

相似回答