当前位置:首页 » 编程语言 » c语言双精度

c语言双精度

发布时间: 2022-04-02 20:46:23

c语言中什么是单精度型和双精度型各举个例子。。。

单精度型和双精度型的区别在于它们的精确程度不一样,也就是小数部分的有效位数不一样。

单精度数(float型)在32位计算机中存储占用4字节,也就是32位,有效位数为7位,小数点后6位;双精度数(double型)在32位计算机中存储占用8字节,也就是64位,有效位数为16位,小数点后15位。

比如3.1415926535897932384这个小数,如果定义成float型,那么只会留下小数点后5位,也就是3.141592,如果定义成double型,那么只会留下小数点后15位,也就是3.141592653589793。

(1)c语言双精度扩展阅读

计算机的数都是以二进制进行存储。无论是单精度浮点数还是双精度浮点数,在计算机上的存储都遵循IEEE 754规范,使用二进制科学计数法。

二进制科学计数法包含三个部分:符号位,指数位和尾数部分。单精度数的符号位,指数位和尾数部分分别为1,8,23,而双精度为1,11,52。

而单双精度中的精度就主要取决于尾数部分的位数。float的尾数尾数为23位,除去全部为0的情况以外,最小为2的-23次方,因此float小数部分只能精确到后面6位。类似的,double尾数位数为52,最小为2的-52次方,因此只能精确到小数点后15位。

② C语言中单精度,双精度,长双精度分别是什么意思

国际标准浮点格式,字节越长精度越高:
单精度浮点(float):4个字节长
双精度浮点(dloube):8个字节长,
长双精度(long double):10个字节长。
根据你C/C++程序的需要,可以定义浮点变量,
精度高,占的字节也多。

③ C语言如何输出双精度浮点型数据

1.双精度浮点型数据用%lf输出。因为double是8个字节的,float是4个字节的,%f 的格式就是4个字节的,而 %lf 就是8个字节的。 例如:printf("%lf ",x);

2.short 占用内存空间2个字节,短整型数据用%d输出 例如:printf("%d ",a);

例:

#include <stdio.h>

int main()

{double x;

short int a;

printf("%lf",x); // 输入double型

printf("%d",a); //输入短整型

return 0;

}

(3)c语言双精度扩展阅读:

C语言特有特点

1.C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。

2.C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。

3.不同的变量类型可以用结构体(struct)组合在一起。

4.只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。

5.部份的变量类型可以转换,例如整型和字符型变量。

6.通过指针(pointer),C语言可以容易的对存储器进行低级控制。

7.预编译处理(preprocessor)让C语言的编译更具有弹性。

④ 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位全用于存放小数部分,这样可以增加数值的有效范围,减少舍入误差。有的系统则将所增加的位(bit)一部分存放指数部分,这样可以扩大数值范围
单精度实型 float 占4个字节
能保证6位有效数字,取值范围为-3.4*10的-38次方至3.4*10的38次方。
双精度实型 double 占8个字节
能保证15位有效数字,取值范围为-1.7*10的-308次方至1.7*10的308次方

⑤ c语言双精度变量

#include
"stdio.h"
void
main()
{double
a=8.5,
b=2.65;
//这里不应该有逗号
printf("%lf,%lf\n",a,b);//这里没有定义输出的字符
}
声明变量的时候不能有逗号,在printf中把输出的东西显出来,就跟上面一样
我给你注释了。希望你能明白。如果不明白加我网络HI

⑥ c语言中什么时候用双精度什么时候用单精度谢谢

类型 比特数 有效数字 数值范围
float 32 6-7 -3.4*10(-38)~3.4*10(38)
double 64 15-16 -1.7*10(-308)~1.7*10(308)
long double 128 18-19 -1.2*10(-4932)~1.2*10(4932)

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

数据在32 6-7 -3.4*10(-38)~3.4*10(38) 用单精度
数据超出32 6-7 -3.4*10(-38)~3.4*10(38)用双精度

⑦ C语言的双精度问题

对于浮点数字面值常量,无特殊说明默认为双精度,如:1.23
也可以显式地在后面加上一个D来表示这是一个双精度数,即1.23D
如果要表示单精度常量,需要显式地在后面加上一个F,即1.23F。

⑧ c语言 双精度浮点

双精度浮点的输出格式通配符就是%f,和普通浮点数是一样的,如果输出的数字较大,则用%lf,lf是表示长浮点数。

⑨ C语言如何输入双精度数据

C语言用scanf()函数输入双精度数据时,采用的数据格式参数必须是%lf,如:

doubled;
scanf("%lf",&d);

scanf("%f,%f",&a,&b);不能输入双精度数据吗?

当然不能。主要原因在于double和float类型的大小不同:

  1. double类型数据在内存中存储占8字节(64位),按IEEE754标准存储,格式为:1位符号位+11位指数位+52位小数位

  2. float类型数据在内存中存储占4字节(32位),按IEEE754标准存储,格式为:1位符号位+8位指数位+23位小数位

  3. 当输入数据格式串为%f时,scanf()按float类型将输入的数据存储到内存地址中,这时,若再按double类型解释输出数据时,数据当然不是用户输入的内容了。

热点内容
c语言xml解析器 发布:2025-07-27 12:00:05 浏览:5
sql2005无法安装 发布:2025-07-27 11:57:42 浏览:484
ufs存储卡 发布:2025-07-27 11:43:25 浏览:101
ons合集解压密码 发布:2025-07-27 11:37:47 浏览:14
字符加密算法 发布:2025-07-27 11:21:16 浏览:473
pythonlist表示 发布:2025-07-27 11:15:36 浏览:815
负筋的算法 发布:2025-07-27 11:15:35 浏览:511
大存储深度 发布:2025-07-27 11:15:35 浏览:562
安卓照片软件哪个最好 发布:2025-07-27 11:10:15 浏览:72
mc服务器自己建的为什么打不开 发布:2025-07-27 11:08:08 浏览:814