什么是数据类型?

数据类型是编程语言中为了对数据进行描述的定义,因为对于机器不能识别数据,而不同数据间的相互运算,在机器内部的执行方式是不一样的.这就要用户先定义数据的特性再进行其它操作.这里的特性也就是数据类型.

我们先来写一段代码:

#include <stdio.h>

int main(){
    //  题目要求:通过BMI计算公式“体重(kg)除以身高(m)”计算体质指数BMI
    //  分别定义 身高,体重,结果 三个变量
    int wg,kg,num; 
    //  输入身高和体重
    printf("请输入您的身高(m):");
    scanf("%d",&wg);
    printf("请输入您的体重(kg):");
    scanf("%d",&kg);
    //  BMI计算公式
    num = wg / kg;
    //  输出结果
    printf("%d",num);
    return 0;
}

从上面的代码我们可以看到,wg、kg、num这三个是我们定义的变量,并且定义的是int数据类型,就是整数型。第一步是定义变量,第二步是让用户输入身高和体重,第三步是进行BMI计算,第四步是计算完后输出结果给用户。

输出结果:

demo 结果 那我们知道,整数型的变量在输入输出的时候是不会有小数点的,那就是说,用户输入的小数点后面的值是被系统忽视掉了,比如1.75m,这里系统只会看到1,并不会看到后面75的小数点。所以这里60kg * (1m * 1m) = 60

但是我们的题目要求是需要用户输入身高和体重,身高和体重都会存在小数点的,那我们应该如何去做呢?是不是应该给变量定义另外一个数据类型呢?

数据类型类别:

int : 整数型
short : 短整型
long : 长整型
float : 单精度浮点型
double : 双精度浮点型
char : 字符型
void : 无类型

看完这里的数据类型,我们是不是应该想到用什么数据类型正确的定义wg、kg、num这三个变量了呢?

让我们看看正确的代码:

#include <stdio.h>

int main() {
	//  题目要求通过BMI计算公式“体重(kg) 除以 身高(m)的平方”计算体质指数BMI
	//  分别定义身高,体重,结果
	float wg, kg, num;
	//  输入身高和体重
	printf("请输入您的体重(kg):");
	scanf("%f", &kg);
	printf("请输入您的身高(m):");
	scanf("%f", &wg);
	//  BMI计算公式
	num = kg / (wg * wg);
	//  输出结果
	printf("%lf", num);
	return 0;
}

输出结果:

img 图标 是的,我们应该用精度浮点型去定义这三个变量。我们用float和double这两个数据类型都可以,那float和double的区别是什么呢?区别是

1、在内存中占有的字节数不同:
单精度浮点数在机内存占4个字节,双精度浮点数在机内存占8个字节。

2、有效数字位数不同:
单精度浮点数有效数字8位,双精度浮点数有效数字16位。

3、数值取值范围不同:
单精度浮点数的表示范围:-3.40E+38到3.40E+38,双精度浮点数的表示范围: -1.79E+308到-1.79E+308。

4、在程序中处理速度不同:
一般来说, CPU处理单精度浮点数的速度比处理双精度浮点数快。

简单的说就是double的运算精度比float的运算精度要高,但是double会比float的运行速度要慢。

结语

在满足语句需求的情况下,尽量选择单精度浮点保证减少程序运行的时间,从而提高程序的效率。

说点什么
好耶,沙发还空着ヾ(≧▽≦*)o
Loading...