c - 在 C 中添加 2 个浮点数
问题描述
如果我有 2 个浮点数并将它们加在一起,结果是浮点数吗?还是双标?还是编译器定义的行为?
9.0f + 8.0f <--- 结果是浮点数、双精度还是编译器定义的行为?
如果可能的话,在 C 规范中引用正确位置会很有帮助。
解决方案
9.0f + 8.0f
结果是 a
float
吗?
是的,类型是float
.
首先,如果任一操作数的对应实类型为
long double
,则将另一个操作数转换为对应实类型为 的类型,而不改变类型域long double
。
否则,如果任一操作数的对应实类型为
double
,则将另一个操作数转换为对应实类型为 的类型,而不改变类型域double
。
否则,如果任一操作数的对应实类型为
float
,则将另一个操作数转换为对应实类型为 的类型,而不改变类型域float
。
C23x 博士 § 6.3.1.8 1
虽然类型是float
,但取决于FLT_EVAL_METHOD
,总和可能是使用或数学计算float
的。这可能会对更大/不同值的表达式产生算术影响。这部分是“编译器实现定义的行为”。double
long double
推荐阅读
- azure - “Microsoft.Sql/servers/auditingSettings” 要求对非 vnet 存储帐户进行 StorageBlobContributor 访问
- python - 如何通过匹配数据框中的行值来更改列值?
- python-3.x - 将月份作为 x 刻度的数据集绘制的最佳方法是什么
- css - 如何在 React 的 @import'ed 样式表中读取 CSS 变量集?
- javascript - 如何使用 MongoDb 正确播种我的数据库并表达?
- android - Android Studio 自动完成功能如何在 RecyclerView 的 `app:layoutManager` 中工作?
- c# - 计算字段不显示数据报告 devexpress
- react-router-redux - 如何使用 ConnectedRouter 在新页面加载时滚动到顶部?
- google-colaboratory - 更改 COLAB 主帐户。如何更改我的 colab 应链接到的电子邮件/驱动器?
- linux - Linux powershell 7.1.3 CentOS 对你来说也很慢吗?