前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【C语言】double 关键字

【C语言】double 关键字

作者头像
謓泽
发布2022-12-12 15:18:06
6150
发布2022-12-12 15:18:06
举报
文章被收录于专栏:【C】系列

🚩write in front🚩    🔎大家好,我是謓泽,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 🏅2021年度博客之星物联网与嵌入式开发TOP5~2021博客之星Top100~阿里云专家博主 & 星级博主~掘金⇿InfoQ~51CTOP创作者~周榜109﹣总榜883⇿全网访问量30w+🏅 🆔本文由 謓泽 原创 CSDN首发🙉如需转载还请通知⚠ 📝个人主页-謓泽的博客_CSDN博客 📃 🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​ 📣系列专栏-【C语言】关键字_謓泽的博客-CSDN博客🎓 ✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本📩 ⑨ double ⇿ 双精度浮点型 ⒈描述⇢双精度浮点类型的使用关键字是 double,它在内存中占用的是⑧个字节。 ⒉作用⇢定义一个双精度类型变量,然后其赋值浮点型数字,最后通过输出语句将其显示打印输出在控制台上。 ⒊注意⇢double 类型在程序默认输出⑥位小数点,有效数字是6~7,格式符为 %lf 的。 代码示例如下①👇

代码语言:javascript
复制
#include<stdio.h>
int main(void)
{
    double a = 3.14159;
    printf("双精度浮点型 = %lf\n",a);
    return 0;
}

运行结果🖊  双精度浮点型 = 3.14159  📝拓展知识点如下👇

  1. %f 以十进制形式输出 float 类型;
  2. %lf 以十进制形式输出 double 类型;
  3. %e 以指数形式输出 float 类型,输出结果中的 e 小写;
  4. %E 以指数形式输出 float 类型,输出结果中的 E 大写;
  5. %le 以指数形式输出 double 类型,输出结果中的 e 小写;
  6. %lE 以指数形式输出 double 类型,输出结果中的 E 大写。

代码示例如下②👇

代码语言:javascript
复制
#include<stdio.h>
int main(void)
{
	double a = 3.24359223;
	printf("双精度浮点型 = %.40lf\n", a);
	return 0;
}

运行结果🖊 双精度浮点类型 = 3.24359223...(以及小数点后面32位的0) 🍏注⇢.40代表的是后续的小数点的数字保留多少位的数字。 🍊遗留问题→浮点数的内容精度损失。 (ง •_•)ง问题-此时细心的张三同学在它的编译器发现了一个问题。 说明-在上述的代码当中张三同学发现在后面的小数点32位,原本都应该是数字0的。结果出现了一个数字是1的。

代码语言:javascript
复制
 3.2435922300000000000000000000000000000001

说明⇢一开始张三同学还以为他看错了,结果看了几遍都发现自己并没有看错。謓泽这个是怎么回事呢?明明在实际的值当中并没有出现过1的这个数字阿,按理来说不会这也阿。 解答-张三同学你发现的这个问题我们就把它称之为四字『精度损失』。从理论的角度上来说它打印出来的值因该是全0的数字的,那么想要知道为什么是这个样子的我们就需要了解一个概念就是数据的存储。数据存储这里就不详细的介绍了,在博主的[C系列]有篇文章当中有并且讲的非常的详细。如果你对这个不了解的话可以去康康(●'◡'●) 🍈专业词汇解释精度损失⇢在上述的拓展当中我们提到过精度损失,接下来我们用代码来讲述下倒不如说是证明下这精度损失到底是不是为真正是浮点数类型为精度损失了。

代码语言:javascript
复制
#include <stdio.h>
int main(void)
{
	double x = 1.0;
	double y = 0.1;
	printf("x=%.20lf\n", x);
	printf("y=%.20lf\n", y);
	if ((x - 0.9) == 0.1)
		printf("No精度损失\n");
	else
		printf("Yes精度损失\n");
	return 0;
}

运行结果🖊 x = 1.00000000000000000000 y = 0.00000000000000001111

Yes精度损失 ①结论⇢浮点数在进行比较的时候,绝对不能直接使用==号来进行比较。 ②因为⇢浮点数本身就是存在着精度损失,从而导致最终结果有细微的差别的。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档