Ⅰ c语言中的单精度和双精度浮点型的区别!3.14是哪种3.14159呢
3.14是单精度,3.14159是双精度。
两者区别如下:
一、指代不同
1、单精度:是指计算机表达实数近似值的一种方式。
2、双精度:此数据类型与单精度数据类型(float)相似,但精确度比float高。
二、占用空间不同
1、单精度:范围在负数的时候是从 -3.402823E38 到 -1.401298E-45,而在正数的时候是从 1.401298E-45 到 3.402823E38 。
2、双精度:双精度型占8 个字节(64位)内存空间,其数值范围为-1.79769313486232E308 到1.79769313486232E308。
三、特点不同
1、单精度:数值比以上值小的时候,将会由于尾数的有效位数减少而逐步丧失精度(IEEE 754的规定),或者有的系统则直接采用0值来简化处理过程。
2、双精度:编译时所占的内存空间依不同的编译器而有所不同,是double float数据类型,C/C++中表示实型变量的一种变量类型。
Ⅱ c语言中,常量,变量,浮点,单精度,双精度是什么意思举例
实型常量又称实数或浮点数。在C语言中可以用单精度型和双精度型两种形式表示实型常量,分别用类型名float和double进行定义。
实型常量在一般的微型集中占用4个字节,一般形式或者指数形式,数值范围都是-1038~1038,有效数字是7位。
浮点型数据又分为单精度型(float)和双精度型(double)两种。
1、单(float):占用比特数32,有效数位6-7,数值范围(-3.4e-38~3.4e+38)
2、双(double):占用比特数64,有效数位15-16,数值范围(-1.7e-308~1.7e+308)
(2)c语言中单精度和浮点型扩展阅读
c语言中,数据类型分为整形、实型和指针类型(以下内容均表示在32位操作系统中):
其中整形分为char,shortint,longint,longlong,各种类型的使用,前面都可以加上unsigned表示无符号char字符类型,表示的大小为-128~127,大小为一个字节;
其中0-127被编为ASCⅡ码shortint短整形-65536~655352个字节longint整形-20亿多~20亿多4个字节longlong长整型8个字节longint通常写为int代表的是CPU字长;
在32为操作系统中cpu的字长是32位,即4个字节实行(浮点型)分为float和double:float6~7位有效数字4个字节double15~16位有效数字8个字节在现代CPU中,有一个协处理器专门进行浮点数的运算;
然后根据类型进行精度截取指针类型32位无符号整数,即unsignedint,但是它只能表示内存中一个比特的空间的编号注:32位CPU的内存寻址范围是从32个0到32个1,总计4GB,所以,32位操作系统最高只支持4G内存。
Ⅲ c语言中单精度浮点型和双精度浮点型分别可以保留几位小数
小数点后是几位与单精度或双精度无关,输出浮点数时%.xf中的x确定输出多少位小数,如%.12f就把对应的浮点变量值输出12位小数。但是,由于浮点数的长度都是有限的,float的精度是7位左右(包括整数部分),double的精度为16位左右(同样包括整数部分),当x值大到超出对应变量类型的最大表达能力时,后续数字实际上是系统填上的垃圾数,没有实际意义。
Ⅳ C语言怎么表示单精度浮点数
在C语言源码中,只能在浮点数后面加f来表示单精度浮点数。例如:float f=1.0f
单精度浮点数(Single)
用来表示带有小数部分的实数,一般用于科学计算。
占用4个字节(32位)存储空间,包括符号位1位,阶码8位,尾数23位。其数值范围为-3.4E38~3.4E38,单精度浮点数最多有7位十进制有效数字,单精度浮点数的指数用"E"或"e"表示。
单精度浮点数有多种表示形式:±n.n(小数形式) ±n E ±m(指数形式) ±n.n E ±m (指数形式)
如果某个数的有效数字位数超过7位,当把它定义为单精度变量时,超出的部分会自动四舍五入。
双精度浮点数(double)
用8个字节(64位)存储空间,包括符号位1位,阶码11位,尾数52位。
Ⅳ C语言中单精度和双精度浮点型数据的有效数值怎么算出来的
这个最好去看一下计算机组成,里面讲到float数的表示方法,比如float数,计算机里面的存储形式是32位,第一位是符号位,第2~9这8位是2的N次方中的N,也就是阶码,阶码范围:±127,
单精度阶码:决定浮点数的数值范围。float绝对值最大最小:2^(±127)≈10^(±38)
双精度阶码:决定浮点数的数值范围。double绝对值最大最小:2^(±1023)≈10^(±306)
Ⅵ 在c语言中,单精度浮点数与双精度浮点数的区别与联系。
在C语言中,单精度浮点数(float)和双精度浮点数(double)类型都是用来储存实数的,双精度是用记忆较多,有效数字较多,数值范围较大。两种类型对应的格式字符也有不同。 以Turbo C 为例: float 单精度浮点数使用记忆:4 字符(32 位元)有效数字:6-7 位数值范围:�6�13.4e38 至 �6�13.4e�6�138、0、3.4e�6�138 至 3.4e38格式字符:%f %e %g double 双精度浮点数使用记忆:8 字符(64 位元)有效数字:15-16 位数值范围:�6�11.7e308 至 �6�11.7e�6�1308、0、1.7e�6�1308 至 1.7e308格式字符:%lf %le %lg (输入时格式字符串不加 l 会出错,输出时仍可用 %f %e %g) 其他系统大同小异,只是实际数值可能有点不同。 两种类型可以互相赋值,只是 double 型赋给 float 型的时候有可能在数值范围外。两种类型混合计算的时候自动换为 double 型计算。
Ⅶ c语言双精度型变量和单精度浮点型变量有什么区别
说一下我经常用到的吧!
整形int:%d;
单精度浮点型float:%f;
双精度浮点型double:%lf;
字符型char:%c;
其中f的使用,%a.bf,就是小数点前面a位数,小数点后面b位数。
\n
:换行
\b:退格
\t:
进格
你可以看一下这个
里面很详细
http://ke..com/view/410546.htm
Ⅷ 在c语言中,浮点型小数及单双精度指什么讲的通俗易懂点!谢谢
是这样的,浮点型就是指小数的意思,至于单双精度也挺简单的,单精度就是用float定义了,这个是占4个字节也就是32位的二进制数,而双精度就是指double了,双精度占8个字节,也就是64位的二进制数。至于计算机怎么存储他们我们不需要了解,我们要知道就是 double(双精度)比单精度(float)耗内存,运算慢,但是精度高,float精确到小数点后7位,double可以精确到小数点后16位,原则是能用float就不用double,这样省内存提高效率。
Ⅸ C语言中单精度浮点数和双精度分别如何表示有什么差别
C语言中,单精度浮点型为float, 双精度浮点型为double。
Float为单精度,内存中占4个字节,有效数位是7位(因为有正负,所以不是8位),在我的电脑且VC++6.0平台中默认显示是6位有效数字。
double为双精度,占8个字节,有效数位是16位,但在我的电脑且VC++6.0平台中默认显示同样是6位有效数字。
二者区别:
占用字节空间不同。
一个float变量占用四字节,一个double类型变量,一般占用8字节。表示范围不同。
float表示范围为-3.4E-38~3.4E+38。double 表示范围为-1.7E-308~1.7E+308。
精度不同。
float在表示十进制时,有效数字为6到7位。double在表示十进制时,有效数字为15到16位。输入输出格式不同。
在C语言中,输入输出格式化字符串,float使用%f,而double使用%lf。
Ⅹ C语言中单精度和双精度浮点型数据的数值范围是多少怎么算出来的请大虾帮忙了!
今天看书也是发现了这个问题但是网络一番网上并没有想要的答案,思索后得出结果,首先浮点型是32位精度 有一个符号位8个指数位23个尾数位
关于精度的计算单精度8位阶码,1位符号,剩下23位尾数,算出2的负23次方,得到0.00000011920928955078125
前面0有多少个,就表示能精确到那一位,所以精度为6提供七位有效数字
双精度11位阶码,1位符号,剩下52位尾数,算出2的负52次方,得到0.
所以精度为15,提供16位有效数字。
然后关于范围的计算:范围是指数位控制的,指数位为8,有效为为7(这里涉及到余码,有兴趣的同学可以查看相关资料)所以最大范围为2^7=128 这里是指数部分 化为十进制则为
2^128=3.402823669384635E38
所以范围为3.4E-38~3.4E+38
double同理