2 daxiangele1 daxiangele1 于 2016.01.20 11:31 提问

关于float类型的有效数字,C语言

C语言float类型的有效数字不是16位么?为什么金牌大试卷的答案上说是6位?印错了?

4个回答

91program
91program   Ds   Rxr 2016.01.20 11:56

float 类型小数点后有效位的位数是 6.Double 的 是 15 位。

91program
91program   Ds   Rxr 2016.01.20 11:57
caozhy
caozhy   Ds   Rxr 2016.01.20 11:33

http://blog.sina.com.cn/s/blog_6ebd49350101gdgo.html

float和double的精度是由尾数的位数来决定的。浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”,由于它是不变的,故不能对精度造成影响。float:2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字

John_ToStr
John_ToStr   Rxr 2016.01.23 16:47

caozhy  解释的很清楚了, 总之就是方便编译器处理

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
float与double有效数字问题
我们在学习C语言课本的时候会发现书上说: float的有效数字为6位 double的有效数字为15位 那么我们应该怎样去看到它真正的有效数字是不是所说的那样呢? 我用代码简单实现了一下,代码如下:#include <stdio.h>void main() { float a; double b; //变量声明 a = 1.0/3; b = 1.0/3;
C/C++ float与double的有效数字位
结论: 有些编译器 float的有效数字位是 8位 , 有些有效数字位是 7位 有些编译器double的有效数字位是 15位, 有些是 16位 注意printf(“%f”, x); // 默认输出6位小数(不要和有效数字混淆) 分析 C/C++编译器标准都遵照IEEE制定的浮点数表示法来进行float,double运算无论是float还是double,在内存中的存储主要分成三部分,分别是:(1)符号
float的范围和有效数字怎么算出来的?
首先说一下:  范围是3.4E-38 ——3.4E+38,可提供7位有效数字。  上述这两个量都是近似值,各个编译器不太一样的。  下面我就将标准值是怎么定义的,和你说一下:  这个比较复杂,建议你找一下IEEE754标准看一下。  这个简单说一下吧:  在IEEE754标准中进行了单精度浮点数(float)和双精度数浮点数(double)的定义。float有32bit,doubl
float 有七位有效数字
例题: [单选题] float x 与“零值”比较的if语句为? if (x == 0) if (x if (fabs(x) if (x > -0.00001f) 选C
float类型为什么有6位有效数字
float数据在计算机机器内部是2进制数,一般用1个字(4个字节,32位)来表示,1位符号位8位指数位23位“尾数”位【2^23=8388608,一共7位,这意味着最多能有7位有效数字,但是能绝对能保证的为6位,也即float的精度为6~7位。】共32 位 2进制数。平时讲 有效数字 是6~7位 ,指10进制。...
C语言FLOAT类型
摘录自CSDN论坛:点击打开链接 问题: 1)C语言规定了FLOAT类型,6~7位的有效数字,取值范围-3.4e-38至3.4e38。这个取值范围是从-0.00000000000000000000000000034至34000000000000000000000000000,那-1.0不在这个范围内,不能用float定义? 2)而且同为32位,float类型比long int类型(0~429
C语言的float类型
C语言float类型 浮点型变量是由有限的存储单元组成 因此,只能提供有限的有效数字,在有效位以外的数字将不精确,这样,可能会产生一些误差比如 将3.141592612赋值,给一个float类型变量 它只能保证前7位,是有效的 示例代码#include <stdio.h> int main() { float a; a=3.141592612; printf("a=%.9f\n",a);
关于float/double的取值范围和表示! - C语言
编程论坛 → 开发语言 → 『 C语言论坛 』 → 请教float的取值范围! 1 11111111 尾数的23位不全为0: 表示不是数值  1 11111111 00000000000000000000000: 表示负无穷大.比最小负数还小的数都视为负无穷大.  1 11111110 11111111111111111111111: 表示最小的负数,即-2^128=-3.4*10^
float,double,long double——语言学习笔记6
C语言float类型
float,double 的范围和有效数字怎么算出来的?
首先说一下:  范围是3.4E-38 ——3.4E+38,可提供7位有效数字。  上述这两个量都是近似值,各个编译器不太一样的。  下面我就将标准值是怎么定义的,和你说一下:  这个比较复杂,建议你找一下IEEE754标准看一下。  这个简单说一下吧:  在IEEE754标准中进行了单精度浮点数(float)和双精度数浮点数(double)的定义。float有32bit,doubl