c – 比较浮点0

前端之家收集整理的这篇文章主要介绍了c – 比较浮点0前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果foo是float类型,则以下表达式是有效/推荐的吗?
(0.0f == foo * float(0))

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

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

解决方法

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

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

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

猜你在找的C&C++相关文章