回顾

先让我看看上一次学到哪儿了,嗯该学3.6.2的实型变量咯~

实型变量的概念

实型变量也被称为浮点型变量,是用来储存实型数值的变量,是由整数小数两部分组成的。

整型变量的分类

类型名称 关键字
单精度类型 float
双精度类型 double
长双精度类型 long double

单精度类型

单精度类型的关键字为float,在内存中占用4个字节,取值范围是-3.4x10的-38次方到正3.4x10的38次方!还挺大的

定义方法

使用float定义,例如定义a为3.14

1
float a=1.22f;

如果要打印出来就要用到printf了
1
2
3
4
5
6
7
# include <stido.h>
int main ()
{
float a=1.22f;
printf("%f\n",a);
return 0;
}

插一嘴—-格式化输出

为什么要插一嘴呢,因为那%f到底是个什么玩意,因为似乎好像书中还没提到,但是我们又需要用到,所以提前写了

先注意:%d与%u的区别为有无符号的数值范围不同,极限和最小的值不同,不然数值打印出来会有误
| 格式化输出字符 | 解释 |
| ——————- | —— |
| %d | 整型输出 |
| %ld | 长整型输出,前面带了一个long的首字母 |
| %o | 以八进制形式输出 |
| %x | 以十六进制输出整型或者输出字符串的地址 |
| %u | 以十进制输出unsigned型数据,没有符号数 |
| %c | 输出一个字符 |
| %s | 输出一个字符串 |
| %f | 输出实数,以小数形式输出,默认情况保留小数点6位 |
| %.5f | 输出实数,保留小数点五位 |
| %e | 以指数形式输出实数 |
| %g | 根据大小自动选f格式或e格式,且不输出无意义的0 |
其他的就后面看着写了,应该会有所提及。

双精度浮点型

使用double关键字,范围为-1.7x10的负308次方到1.7x10的308次方
双精度浮点型使用关键字double,定义也只需要改一下就好了,去掉后面的f

1
2
3
4
5
6
7
# include <stido.h>
int main ()
{
double a=1.114514;
printf("%f\n",a);
return 0;
}

长双精度类型

关键字long double范围为-1.7x10的负308次方到1.7x10的308次方,
定义也一样,只需要改一下

1
2
3
4
5
6
7
# include <stido.h>
int main ()
{
long double a=1.114514;
printf("%f\n",a);
return 0;
}

实践时间

来吧,动手写一下代码吧!
ps:原本是准备混在一起写一个人物被攻击的掉血加减,然后有一堆错,合着好像不能一起写吧,最后问了下deepseek,给我的代码是全部为float的,而且说因为long double有同样的精准度导致编辑器无法正确读取,所以自己的想法就泡汤咯~
接下来是代码

1
2
3
4
5
6
7
8
9
10
11
12
13
#include<stdio.h>
int main ()
{
double blood = 100.12;
double fight = 10.45;
double force = 5.142;
double sxblood;

sxblood = blood - fight + force;

printf("%lf\n", sxblood); // 使用 %lf 来打印 double 类型,并使用 \n 作为换行符
return 0;
}

最后也是成功得到结果了~还算不错。

到此结束

这次的学习也到此Over,下期学3.6.3字符型变量~