当前课程知识点:高级语言程序设计 >  顺序结构程序设计 >  2.2 数据类型 >  实型数据

返回《高级语言程序设计》慕课在线视频课程列表

实型数据在线视频

实型数据

下一节:格式输出printf函数

返回《高级语言程序设计》慕课在线视频列表

实型数据课程教案、知识点、字幕

大家好

本讲介绍C语言的实型数据

在日常生活中

我们不仅要用到整数

还要用到带小数的实数

那么计算机中是如何存储实型数据的呢

在C语言中实型也叫浮点型

浮点型数据有多种类型

在VC++2010开发环境下

flight类型数据占四个字节

double类型占八个字节

long double数据也占八个字节

无论float型还是double型

在内存中存储主要分为三个部分

符号位 指数位 有效数字位

在介绍实型数据的存储方式之前

我们先来了解一下有效数字的概念

一个数的有效数字

是从该数最左边不为0的数字数起

是最右边不为0的数字

这两个数字之间的每一个数字位

这些数字位的个数都称为该数的有效数字位数

我们来看一下

比如说3500

它的有效数字只有两位 3和5

负0.278

它的有效数字有三位278

我们还要注意

如果一个数带有指数部分

比如说3.14乘以10-6

它的有效数字只有三位3.14

314×10-5

它的有效数字也是314

浮点数

在内存中是按指数形式存放的

比如说3.14159

在内存中是把它转换成3.14159×102

分尾数部分和阶码来存储的

尾数部分的宽度决定了有效数字的个数

阶码部分的宽度决定了数字位数

符点型常量有两种形式

十进制小数形式

指数形式

注意指数形式的表示形式

在1的前后一定要有数字

在1的后面务必是整数

1.31E3.5是不合法的浮点型常量

我们来看一下浮点型变量

a是float型变量

b是double型变量

123456.789是double型常量

一个double型常量

既可以赋给float型变量

也可以赋给double型变量

只是这两种类型的变量接收的有效数字位数不同

符点型变量的输出

也是用printf函数

float型和double型对应的格式说明符都为%f

看一下这个代码

这个程序里有两个变量

f为float

d为double型变量

那么给这两个变量赋值

都赋1234567890

我们来看看运行结果

a得到的数字是1234567936

d得到的数字是1234567890

从这个结果可以看得出来

float型变量仅能接收七位有效数字

而double型变量可以接收16位有效数字

现在我们来看看float型变量的输入

float型变量也是用scanf函数来输入的

注意这里要强调一点

float型变量的输入的格式字符为%f

double型变量它对应的格式说明字符为%lf

看一段代码

a为float型

d为double型

这里f的值

对应的字符格式是%f

d对应的格式字符为%lf

这样才能正确地将我们从键盘输入的数据

送到f和d中去

再来看一下数据类型转换

不同类型的数据一起参加运算

比如说整数可以和字符相加

也可以和实数相加

再进行运算时

不同类型的数据要先转换为同一类型

然后进行运算

数据类型转换方式有两种

一种是自动转换

数据类型自动由低级向高级转换

强制类型转换

将表达式的值强制转换为指定的数据类型

先来看一下自动类型转换

这种转换是由编译器自动完成的

它的转换规则是如图所示

横向的箭头表示必做的转换

纵向的箭头表示

当运算对象类型不同时的转换方式

再来看一下强制类型转换

我们可以通过下面的方法

把表达式的值转化为指定类型

定义一个float型变量x

它的值是10.9

再定义一个整型变量y

我们可以把x的值强制转换成整型赋给y注意

是把10.9强制转换为整形赋给了y

那么x的值呢

没有发生变化

X的值还是10.9

再来看一个代码

在这里有两个整型变量

total的值是15

number的值是2

如果我们想求两个整型变量的平均值

直接用这个除法运算符

那么得到的average是7还是7.5

我们来看一下

total和number都是整型变量

那么按整型变量的除法的运算规则

得到的结果为7

average虽然是float型变量

但是最后它的值还是7

两个整数运算的结果还是整数

不是浮点数

那如果我们想得到浮点数7.5

我们可以用强制类型转换

先将total的值的类型转换成float类型

然后一个float类型的数据

去跟整数相除

结果就是一个浮点型的数据了

来看 先将15强制类型转换为15.0

变成实型数据

15.0去与2相除结果是7.5

最终average变量得到的值是7.5

小结一下

今天我们讲了负数的表示范围及误差

float型常量和变量的格式规范以及使用

double型常量和变量的格式规范以及使用

数据类型的自动转换与强制类型转换

今天的内容就讲到这里

谢谢大家

高级语言程序设计课程列表:

程序设计和C语言

-1.1 计算机程序和计算机语言

--计算机程序和计算机语言

--致敬先辈:伟大的C语言之父——丹尼斯·里奇 程序员

-1.2 C程序的构成

--C程序的构成

--当前主流程序设计语言各自都有什么优势?

-1.3 C语言编辑、编译、运行(VC++2010学习版)

--C语言编辑、编译、运行(VC++2010学习版)

-练习题

顺序结构程序设计

-2.1 变量的定义和使用

--变量的定义和使用

-2.2 数据类型

--数据类型简介

--整型数据

--实型数据

-2.3 格式输出和格式输入

--格式输出printf函数

--格式输入scanf函数

--单个字符的输入输出

-2.4 运算符和表达式

--运算符和表达式

-2.5 结构化程序设计入门

--结构化程序设计入门

-练习题

选择结构程序设计

-3.1 为什么要用选择结构解决问题

--为什么要用选择结构解决问题

-3.2 如何正确表示选择结构中的条件

--如何正确表示选择结构中的条件

-3.3 用if语句及if语句嵌套实现选择结构

--用if语句及if语句嵌套实现选择结构

-3.4 用switch语句实现选择结构

--用switch语句实现选择结构

-练习

循环结构程序设计

-4.1 循环的引入

-- 为什么要用循环结构解决问题

-4.1 循环的引入--作业

-4.2 用while语句实现循环

--用while语句实现循环

-4.3 用do-while语句实现循环

-- 用do-while语句实现循环

-4.4 用for语句实现循环

-- 用for语句实现循环

-4.4 用for语句实现循环--作业

-4.5 何时需要用循环的嵌套

--何时需要用循环的嵌套

-4.6 如何提前终止循环和提前结束本次循环

--如何提前终止循环和提前结束本次循环

-习题--作业

数组

-5.1 数组类型的引入

--数组类型的引入

-5.2 一维数组的定义和初始化

--一维数组的定义和初始化

-5.3 一维数组的使用

--一维数组的使用

-5.4 二维数组的定义和初始化

--二维数组的定义和初始化

-5.5 二维数组的使用

--二维数组的使用

-习题--作业

指针

-6.1 什么是指针

--什么是指针

-6.2 指针类型及相关概念

--指针类型及相关概念

-6.3 指针变量的定义、赋值与使用

--指针变量的定义、赋值与使用

-6.4 指针的运算

--指针的运算

-6.5 指针与一维数组

--指针与一维数组

-6.6 指针的指针

--指针的指针

-6.7 指针与二维数组

--指针与二维数组

-习题--作业

函数

-7.1 为什么要自定义函数

--为什么要自定义函数

-7.2 函数的定义

--函数的定义

-7.3 函数的调用

--函数的调用

-7.4 函数参数的传递

--函数参数的传递

-7.5 函数的嵌套调用和递归调用

--函数的嵌套调用和递归调用

-7.6 变量的作用域和存储类型

--变量的作用域和存储类型

-习题--作业

字符串

-8.1 字符串的存储及输入输出

--字符串的存储及输入输出

-8.2 系统字符串处理函数

--系统字符串处理函数

-8.3 自定义字符串处理函数

--自定义字符串处理函数

-习题--作业

结构体和共用体

-9.1 结构体类型的定义

--结构体类型的定义

-9.2 结构体变量及指针变量的定义及使用

--结构体类型变量和指针变量的定义和使用

-9.3 结构体变量和指针变量作函数的参数

--用结构体变量和指向结构体的指针作函数参数

-9.4 结构体数组的定义和使用

--结构体数组的定义和使用

-9.5 共用体类型和枚举类型

--共用体和枚举类型

-习题--作业

动态内存分配

-动态内存分配--习题

文件

-习题--作业

实型数据笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。