在c语言中,单精度有效数字和有效数位

作者&投稿:机国 (若有异议请与网页底部的电邮联系)
在c语言中,有效数字和有效数位怎么解释?~

有效数字位数是小数点以后的数字位数,而电脑输出的数字位数决定于定义变量的模式,并一般采用“四舍五入”的方法。

int i;

printf("Enter a value for i...
");
scanf("%d", &i);

键盘输入0.333,储存到变量i里的数是0(约掉了)
如果改成:
double i;

那就会储存0.333000
在输出数值的时候可以先设定有效数值位数:
double i;

printf("Enter a value for i...
");
scanf("%d", &i);

printf("
i = %.4lf", i);
在输出的时候在电脑上会输出“i = 0.3330”

.在处理过程中不会当做有效数字位数来处理。

有效数字位数还可以通过常量来设定,在此不再赘述。
希望对你有用!

c语言中的单精度数据的有效位数是7位。
c语言中的单精度浮点数的实际有效精度为24位二进制,这相当于 24*log102≈7.2 位10进制的精度。尾数用23位存储,加上默认的小数点前的1位1,2^(23+1) = 16777216。因为 10^7 < 16777216 < 10^8,所以说单精度浮点数的有效位数是7位。

扩展资料:
单精度浮点数是用来表示带有小数部分的实数,一般用于科学计算。在计算机存储器中占用4个位元(32 bits)存储空间,包括符号位1位,阶码8位,尾数23位。利用“浮点”(浮动小数点)的方法,可以表示一个范围很大的数值。其数值范围为-3.4E38~3.4E38。
单精度浮点数最多有7位十进制有效数字,如果某个数的有效数字位数超过7位,当把它定义为单精度变量时,超出的部分会自动四舍五入。单精度浮点数的指数用“E”或“e”表示。

有效数字位数是小数点以后的数字位数,而电脑输出的数字位数决定于定义变量的模式,并一般采用“四舍五入”的方法。

int i;

printf("Enter a value for i...\n");
scanf("%d", &i);

键盘输入0.333,储存到变量i里的数是0(约掉了)
如果改成:
double i;

那就会储存0.333000
在输出数值的时候可以先设定有效数值位数:
double i;

printf("Enter a value for i...\n");
scanf("%d", &i);

printf("\ni = %.4lf", i);
在输出的时候在电脑上会输出“i = 0.3330”

.在处理过程中不会当做有效数字位数来处理。

有效数字位数还可以通过常量来设定,在此不再赘述。
希望对你有用!

第一问,精确位只有7位,7位以后的都是估计位;第二问,一个数与远大于其本身的数相加,相当于没加,结果是大数,大数的显示结果也只保留7位有效数字

详细请查看IEE754
单精度,转换大概规则是从0到31位 最高位表示正负 第30-23位 这8位表示阶码 后22位表示数据。因此你要把他转化为IEEE754格式才能够看出来。能表示的最小精度为2的-23次方,结果是0.00000011920928955078125。但实际上做不到的,数据由于阶码的存在,实际表达精度会下降

你用的什么编译器什么环境啊?我在VS2010下的测试结果和你不一样啊。


float在C语言中是什么意思?具体的。double呢?谢谢!
float在C语言中是 单精度浮点数, double 是双精度浮点数。它们精度不同,能表示的数值范围大小不同。单精度浮点数,4字节, 字长32位,有一位符号位,指数位共8位,尾数共23位。 指数能够表示的指数范围为-128~127。float的精度为6~7位有效数字。 float的范围为-2^128 ~ +2^128,也即-3...

C语言中什么字符类型可以有小数部分?
C语言中有float单精度和double双精度两类可以有小数部分的实型变量。一般,单精度型占4个字节(32位)内存空间,只能提供七位有效数字;双精度型占8 个字节(64位)内存空间,可提供16位有效数字。

c语言中 单双精度 取值范围及有效数字
单精度型,其类型说明符为float 。双精度型,其类型说明符为double 。在Turbo C中单精度型占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,只能提供七位有效数字。双精度型占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308,可提供16位有效数字。在编程中定义精度类型...

C语言怎么表示单精度浮点数?
在C语言源码中,只能在浮点数后面加f来表示单精度浮点数。例如:float f=1.0f\\x0d\\x0a单精度浮点数(Single)\\x0d\\x0a用来表示带有小数部分的实数,一般用于科学计算。\\x0d\\x0a占用4个字节(32位)存储空间,包括符号位1位,阶码8位,尾数23位。其数值范围为-3.4E38~3.4E38,单精度浮点...

c语言中有哪些数据类型
C语言中的数据类型:一、基本数据类型:1. 整型(int):用于存储整数,占据一定内存空间。2. 浮点型(float\/double):用于存储带有小数点的数值,其中float是单精度浮点数,double是双精度浮点数。3. 字符型(char):用于存储单个字符。二、派生数据类型:派生数据类型是从基本数据类型通过一定方式派生...

C语言中float和double的区别!
此表示形式为 float 类型提供了一个大约在 -3.4E+38 ~ 3.4E+38 之间的范围。double:双精度浮点型,此数据类型与单精度数据类型(float)相似,但精确度比float高,编译时所占的内存空间依不同的编译器而有所不同,是double float数据类型,C\/C++中表示实型变量的一种变量类型。

C语言中,表示输出整形变量,单精度浮点型变量和字符型变量的值的格式符...
1、字符型char:%c;2、整形int:%d;3、单精度float:%f;4、双精度double:%lf;例:include<stdio.h> defineC"CProgramming"intmain(void){ inta=12345;floatb=5.12345678;chare,d,f;scanf("%c%c%c",&e,&d,&f);printf("intis:%d\\n",a);printf("floatis:%f\\n",b);printf("...

C语言中单精度与双精度的区别。
其实就是有效位数不一样。浮点型变量分为单精度(float)、双精度(double)和长双精度(long double)3类。在Turbo C 中:比特(位)数 有效数字 float 32 6-7 double 64 15-16 long double 128 18-19 ANSI C 并未具体规定每种类型数据的长度、精度、数值范围,有的系统将double所增加的32位全...

在C语言中单精度浮点和双精度浮点小数点后有几位小
小数点后是几位与单精度或双精度无关,输出浮点数时%.xf中的x确定输出多少位小数,如%.12f就把对应的浮点变量值输出12位小数。但是,由于浮点数的长度都是有限的,float的精度是7位左右(包括整数部分),double的精度为16位左右(同样包括整数部分),当x值大到超出对应变量类型的最大表达能力时,后续...

在C语言中 双精度和单精度的数,小数点后面分别保留几位啊···_百度...
c语言中double和float的精度并不是按小数点后面多少位来算的 而是按有效数字来算 比如如果是精度为2个有效数字 0.21就是精确的 但是11.1小数点后面的都是不精确的 以下是单双精度的精确位 float 6-7 double 15-16

当雄县15342651962: 在c语言中,单精度有效数字和有效数位 -
定黛澳立: 第一问,精确位只有7位,7位以后的都是估计位;第二问,一个数与远大于其本身的数相加,相当于没加,结果是大数,大数的显示结果也只保留7位有效数字

当雄县15342651962: C语言中单精度和双精度浮点型数据的有效数值怎么算出来的? -
定黛澳立: 这个最好去看一下计算机组成,里面讲到float数的表示方法,比如float数,计dao算机里面的存储形式是32位,第一位是符号位,第2~9这8位是2的N次方中的N,也就是阶码,阶码范围:±127, 单精度阶码:决定浮点数的数值范围.float绝对值最大最小:2^(±127)≈10^(±38) 双精度阶码:决定浮点数的数值范围.double绝对值最大最小:2^(±1023)≈10^(±306)

当雄县15342651962: c语言中单精度为什么有效数字是7位?这个有效数位数是怎么算的?? -
定黛澳立: 单精度是float,有4个字节共4*8=32bit(位)有规定,它的前8bit是用来存储指数位的,因为还要占一个符号位,所以前9位就没了,然后剩下23位,这23位是float的尾数位.因此得出指数位是2的8次方等于256,但是因为有符号,所以取值是从-128~+127.依此类推,尾数位取值就是2的23次方……(范围想不起来了,自己算算吧)

当雄县15342651962: C语言中单双精度数表示什么意思? -
定黛澳立: 单精度表示的数的个数少,小数精度低双精度表示的数的个数多,小数精度高

当雄县15342651962: c语言中变量定义为单精度型,能不能赋予有效数字超过七位的数,系统会显示错误吗? -
定黛澳立: 能啊,只是用单精度输出的时候,只能 保证7位有效数字,可能和你原来赋值的数,有些出入.

当雄县15342651962: 请问c语言中的float和double类型有什么区别?什么叫做单精度和双精度? -
定黛澳立: c语言中 单精度型和双精度型 指两种 类型 的 浮点数. 单精度型 即 float 型, 有效数字约10进制7位 双精度型 即 double 型, 有效数字约10进制15位 所以能描述的数值精度不同. c语言 数据 用 IEEE 754 国际标准.float 型 用 4 字节存放,...

当雄县15342651962: C语言 关于单精度实数的有效位数 -
定黛澳立: 一个单精度浮点数的确占用32位.但浮点数与整数不同,其所能描述的数值范围远远大于后者.因为它是采用科学记数形式来表达数值的,即[+/-]0.xxxxxxxE[+/-]yyy的形式.也就是说是零点几几几乘上10的多少次方的形式.这样,在32位中,一...

当雄县15342651962: c语言里单精度和双精度怎么理解? -
定黛澳立: 单精度和双精度都指浮点数,就是带小数点的数 只不过单精度和双精度是为了区分有效数而已(也就是精确度),它的提法完全符合科学计算中对于数值的观念. 比如:单精度/双精度数值类型从一开始设计的时候,就不是一个准确的数值类型,他只保证在他这个数值类型的精度之内是准确的,精度之外则不保证.

当雄县15342651962: C语言中为什么单精度实数的有效位数一般为7位. -
定黛澳立: 因为浮点型数据在储存时使用的储存单元长度有限,因此能提供的 有效数字位数是有限的. float x; x=66666.66666; printf("%f",x); 运行结果: x=66666.664063输出结果前7位是准确的后四位是一个意想不到的数

当雄县15342651962: C语言怎么表示单精度浮点数 -
定黛澳立: 在C语言源码中,只能在浮点数后面加f来表示单精度浮点数.譬如如下代码: float f = 1.1f; 或者 float f = 1.1F;大小写都可以的.16进制的浮点数编码,它不像整数编码那样直观,因为浮点数编码,在计算机中是以IEEE754格式进行编码编码的,每一个二进制位都有不同的意思,拿单精度浮点数来说,它的符号位占1位,指数位占8位,有效数字位占23位,而且,如果使用十六进制来传送,你还要确定计算机的内存,存储顺序. 相对很复杂的. 要了解更多浮点数编码的问题,可以自己找一下IEEE754编码格式详细的介绍.也许会帮到你!

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网