c – 比较浮点0

如果foo是float类型,则以下表达式是有效/推荐的吗?
(0.0f == foo * float(0))

无论foo的值如何,它都具有预期的(数学)值吗?

C标准是定义行为还是特定于实现?

解决方法

好吧,首先它不是C标准的问题.相反,问题在于您的浮点模型标准(最可能是IEEE).

对于IEEE浮点数,这可能是安全的,因为float(0)应该导致与0.0f相同的数字,并且乘以任何其他数字也应该是0.0f.

不安全的是做其他浮点运算(例如:用非整数加法和减法)并用0.0f检查它们.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...