当前位置:首页 » 编程语言 » c语言中不能用浮点型吗
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言中不能用浮点型吗

发布时间: 2022-10-06 23:27:54

c语言中说的浮点型是什么意思呢

就是这个数就像有一个飘动的小数点,也就是我们学数学中说的科学计数法。

它由阶码和尾码组成,也就是科学计数法中说的有效数字和指数组成, 类似这样 1.0*10^9,这样这个数就是10亿,我们只用记录1和9这两个关键数就可以表示10亿,所占空间小只有2个数,如果写成普通的数就是100000000,这样你就需要记录1个1和9个0,占据空间大,这种数的小数点不是飘动的,所以叫定点数不叫浮点数,需要记录小数点向前向后的所有数,占用空间和有效数字个数无关,和位数有关,会占用更多空间,浮点数比较节省空间,用浮点数表示小数也非常好,所以计算机里的小数,和位数比较高的数都用浮点数,你不可能因为1亿亿+2亿亿也用int型。
浮点数就是科学计数法,不同的是计算机里是2进制浮点数,我们的1.3e-10这种类型的数是十进制的浮点数。

拓展资料

1.有符号整型在C语言中,有符号整形变量a用signed int a表示,通常我们写的int a默认为有符号整型。

根据程序编译器的不同,整形定义的字节数不同。常用的单片机编译器,如KEIL下,51类单片机的C语言中,int代表2个byte(16位);如果是32位ARM处理器的C语言中,则int代表4个byte(32位)。而不少PC端软件的编译器则会根据操作系统或处理器(如64位XP)把int定义为8 byte(64位),(如32位XP)把int定义为4 byte(32位)。

2.无符号整形

在C语言中,无符号整形变量b用unsigned int b表示。

在32位的xp系统中,对于无符号整形变量b, signed short int b,b为16位。

3、字符型

在 C语言中,字符c用char c表示,char在标准中是unsigned, 编译器可以实现为带符号的,也可以实现为不带符号的。

在VC6.0及linux下char 范围为[-128,127],如下

char a=127;

a=a+1; /*现在a的值为-128*/

unsigned char b=255;

b+=1; /*现在b的值为0*/

4、浮点型

浮点型包括单浮点型float,双浮点型double,浮点型数据均为有符号型。

Ⅱ C语言中Switch(表达式) 中表达式不可以是浮点数。

浮点数使用对数形式保存的,所以要比较浮点数相等是不可能的。
a=0.1 0.2 0.3 0.4 0.5
int b;
可以这样b=int(10*a);
swith(b)
{
case 10:
case 20:
}
但这种方法也不是很可行的, 因为对数指数互相转换,0.200000000就可能变成了0.19999
假如
swith(a)
{
case b1: ... a++ break;
case b2: ... b++ break;
case b3: .... c++
default : .... d++;
}
改为while(1)
{
if(fabs(a-b1)<0.0000001) ...a++...break;
if(fabs(a-b2)<0.0000001) ...b++...break;
if(fabs(a-b2)<0.0000001) ...c++...;
d++;
break;
}

为什么不直接用if,不用while
因为:用while后可以用break;提高效率,还可以基本实现
switch的功能;
记得在最后面加上break;就行了

Ⅲ 为什么C语言中结构不能定义浮点类型,百思不解,痛苦中。。。。

这是C语言编译的问题,可以外部定义 float score;

scanf("%f", &score );
再赋值
pArr->score=score;

Ⅳ C语言浮点型数的问题

根本原因是大多数十进制的小数无法转换成精确的二进制小数,举个例子:
二进制的0.1等于十进制的0.5
但是十进制的0.1是无法转换成一个有限的二进制小数的,结果是一个无线循环的二进制小数:
1(2)/1010(2)=0.0001100110011001100......(2)

浮点变量对于任何数都是化成小数来表示的,比如9表示为:
1.001*10^3
我想楼主应该知道,浮点数的小数部分只能保存一定长度的数,如果现在假设有一个只能保存2位小数的浮点变量的话,那1.001就必须进行四舍五入了,照搬十进制数的四舍五入,如果下一位是1,则进一,是0则不进一,所以这个数就变成了1.01*10^3,化成整数是1010,就是十进制的10

Ⅳ 在C语言中为什么循环中更新的变量不能定义成浮点型

可以定义成浮点型,例如:
main(){
float f;
for (f=0.1;f<3.0;f=f+0.1) printf("%g\n",f);
return 0;
}
输出:
0.1
0.2
0.3
0.4
。。。。
2.8
2.9
3
-----------------
浮点型, 由于计算机表达十进制小数时有误差,控制循环次数可能会有误差,但也不一定。为保险起见,能用整型,则用整型。

Ⅵ C语言中说的浮点型是什么意思呢

浮点型变量即为实型变量,代表实数;区别于代表整数的整形变量。

Ⅶ c语言错哪了,是不是不能用float

根本不是float的锅。

  1. 请把float a,b,c,d; 这一行删掉

  2. char (grade); 这一行里的括号可以去掉。

  3. 把scanf那一行改成 scanf("%c",&grade);

  4. 把printf里面的四个%c统统改成

Ⅷ c语言非法使用浮点数

取余运算只能用于整数,而取余后的数也就是你用的a应该是整形,而你用了浮点型所以会错

Ⅸ 关于c语言中如何定义浮点数

需要准备的材料分别有:电脑、C语言编译器。

1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。