在C语言中的实型变量分为2种类型,它们是()和()

如题所述

C语言提供的实型变量有两种类型:单精度(float)和双精度(double)。

#include<stdio.h>

int main() {

float x;

double y;

x=123456.789;

y=123456.789;

printf("x=%f\n",x);

printf("y=%f\n",y);

输出 x=123456.789062 y=123456.789000

分析        

从程序运行结果可以看出,x的值并不等于赋予的初值,而y的值等于赋予的初值。这是由不同数据类型变量的有效数字不同产生的差异。因而在需要定义较大的数时,应选取双精度double型,甚至选取长双精度long double型,以确保数据的准确性。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-05-03
C语言提供的实型变量有两种类型:单精度(float)和双精度(double)。
单精度数是指计算机表达实数近似值的一种方式。VB中Single(单精度浮点型)变量存储为
IEEE
32
位(4
个字节)浮点数值的形式,它的范围在负数的时候是从
-3.402823E38

-1.401298E-45,而在正数的时候是从
1.401298E-45

3.402823E38。
双精度浮点型,此数据类型与单精度数据类型(float)相似,但精确度比float高,编译时所占的内存空间依不同的编译器而有所不同,是double
float数据类型,C/C++中表示实型变量的一种变量类型。
扩展资料:
标准格式:
单精度浮点数用4字节存储,双精度浮点数用8字节存储,分为三个部分:符号位、阶和尾数。阶即指数,尾数即有效小数位数。单精度格式阶占8位,尾数占24位,符号位1位,双精度则为11为阶,53位尾数和1位符号位。
单双精度各部分所占字节数量比实际存储格式多了一位,事实是,尾数部分包括了一位隐藏位,允许只存储23位就可以表示24位尾数,默认的1位是规格化浮点数的第一位,当规格化一个浮点数时,总是调整它使其值大于等于1而小于2,亦即个位总是为1。
对于单精度浮点数,偏移量为127(7FH),而双精度的偏移量为1023(3FFH)。存储浮点数的阶码之前,偏移量要先加到阶码上。前面例子中,阶为2的三次方,在单精度浮点数中,移码后的结果为127+3即130(82H),双精度为1026(402H)。
参考资料来源:搜狗百科--单精度
参考资料来源:搜狗百科--双精度浮点型
第2个回答  2019-08-12
C语言提供的实型变量有两种类型:单精度(float)和双精度(double)
第3个回答  2019-03-21
float
和double
实型变量
实型变量分为两类:单精度型和双精度型,其类型说明符为float
单精度说明符,double
双精度说明符。在Turbo
C中单精度型占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,只能提供七位有效数字。双精度型占8
个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308,可提供16位有效数字。
实型变量说明的格式和书写规则与整型相同。
例如:
float
x,y;
(x,y为单精度实型量)
double
a,b,c;
(a,b,c为双精度实型量)
实型常数不分单、双精度,都按双精度double型处理。
void
main(){
float
a;
double
b;
a=33333.33333;
b=33333.33333333333333;
printf("%f\n%f\n",a,b);
}
相似回答