IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言数据类型--浮点型 -> 正文阅读

[C++知识库]C语言数据类型--浮点型

知识点一:浮点数据类型

? ? ? ? ? 1)浮点数据类型包括float(单精度浮点型),double(双精度浮点型),long double(长精度浮点型)。

? ? ? ? ? 2)由于小数位置可以浮动,所以实数的指数形式称为浮点数。

? ? ? ? ? 3)由于用二进制形式表示一个实数以及存储单元的长度是有限的,因此不可能得到完全精确的值,只能存储成有限的精确度。小数部分占的为(bit)数愈多,数的有效数字愈多,精确度也就愈高。指数部分占位数愈多,则能表示的数值范围愈大。

知识点二:浮点数取值范围

?知识点三:浮点数表示形式

? ? ? ? ? ?1)十进制小数形式:由数字和小数点组成;

? ? ? ? ? ? ? ? ?例:3.14,4.,.4,.0,0.

? ? ? ? ? ?2)指数形式:“十进制小数或整数”+“e(或E)"+"十进制整数”,e(或E)的两边必须有数,不能省略。

? ? ? ? ? ? ? ? ?例:3.5-4表示3.5*10*(-4),5.4E+8

? ? ? ? ? ?3)单精度浮点数类型小数点后有效的位数只有6位;

? ? ? ? ? ?4)双精度浮点数类型的有效位数可以达到16位;

? ? ? ? ? ?5)绝大多数C编译器都规定小数点后最多保留6位,其余部分四舍五入;

知识点四:浮点数定义

? ? ? ? ? 通过类型定义符,可以定义一个浮点数类型的变量,与定义整数变量的方法相同;

? ? ? ? ?【类型定义符】标识符;

? ? ? ? ? ?float fnum;? double fnum;

? ? ? ? ? ? 浮点类型变量也可以使用printf()函数输出,与整型变量不同的是:float的格式说明项为“%f”;double的格式说明项为“%f"。

知识点五:处理带小数的数值

#include <stdio.h>
int main()
{
int a = 1.234567;
int b = 0.00001;
int c = 365.12345;
printf("%d\n", a);
printf("%d\n", b);
printf("%d\n", c);
return 0;
}

? ? ? ? ? ? ?其结果为1? 0? ?365.即小数部分丢失;

? ? ? ? ? 1)我们把上面代码中的整型 int ,用单精度浮点型 float 替代。 之后,再将 printf("%d\n",a); 中的占位符是 %d ,所以我们用 %f 替换。( %d 占位符用于整型, %f 占 位符用于浮点型);

#include <stdio.h>
int main()
{
float a = 1.234567;
float b = 0.00001;
float c = 365.12345;
printf("%f\n", a);
printf("%f\n", b);
printf("%f\n", c);
return 0;
}
结果:1.2345567
      0.000010
      365.123444

? ? ? ? ? 2)?将 int 替换成 float 之后,大部分的数据都是正确的。但是 365.12345 变成了 365.123444 ,很明显精度出 现了误差。 这是因为,浮点数并不能表示无限的精确,它会存在着一定的误差;

? ? ? ? ?3)C标准规定,float类型必须至少能表示6位有效数字,并且取值范围至少是10^-37~10+37。所以,使用float来装365.12345时,前面六位数值是准确的,但是后面的数值略有误差;

? ? ? ? ?4)我们把上面代码中的 float 换 成 double;

#include <stdio.h>
int main()
{
double a = 1.234567;
double b = 0.00001;
double c = 365.12345;
printf("%f\n", a);
printf("%f\n", b);
printf("%f\n", c);
return 0;
}
结果:1.234567
     0.000010
     365.123450

? ? ? ? ? ? 此次365.12345 也是正确的了;

? ? ? ? ? ?*double 类型也是有精度范围的。如果是更高精度的数据, double 也会出现误差;

知识点六:浮点类型所占字节大小

? ? ? ? ? ?#按照我们之前对整型的经验,越大范围的整型类型所占的空间越大。 那么对于浮点类型来说,越高精度、越大范围的浮点类型,应该也会占用越大的空间。 我们用sizeof来测量一下float和double分别占用多大的空间。

#include <stdio.h>
int main()
{
printf("sizeof float = %d\n", sizeof(float));
printf("sizeof double = %d\n", sizeof(double));
return 0;
}
结果;sizeof float=4
      sizeof double=8

? ? ? ? ? #float , double 分别为4,8个字节。验证了我们之前对于越大范围,越高精度的类型所占空间越大的设想.

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-09-15 01:47:57  更:2022-09-15 01:50:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:10:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码