加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 对于浮点值a:对于a的有限值,a * 0.0 == 0.0总是为true?

发布时间:2020-12-16 05:47:16 所属栏目:百科 来源:网络整理
导读:我总是假设以下测试总是会成功的有限值(不是INF,不是NAN)的一些浮点数: assert(somefloat*0.0==0.0); 在Multiply by 0 optimization年,据说双a = 0.0和双a = -0.0并不严格地说同样的事情. 所以我想知道这是否会导致某些平台上的问题,例如上述测试的结果可能
我总是假设以下测试总是会成功的有限值(不是INF,不是NAN)的一些浮点数:
assert(somefloat*0.0==0.0);

在Multiply by 0 optimization年,据说双a = 0.0和双a = -0.0并不严格地说同样的事情.

所以我想知道这是否会导致某些平台上的问题,例如上述测试的结果可能取决于蜜蜂的阳性或阴性.

解决方法

如果您的实现使用IEEE 754算术(大多数),则正和负0将相等.由于您的表达式的左侧只能为正值或负值为有限的a,断言将始终为真.

如果它使用某种其他类型的算术,那么只有实现者,希望实现特定的文档可以告诉你.可以说(见评论),标准的措词可以被认为意味着他们必须在任何情况下比较平等,当然没有一个理智的实施.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读