登录
首页 >  Golang >  Go问答

f != f 什么时候可能为真?

来源:stackoverflow

时间:2024-04-20 12:39:37 498浏览 收藏

哈喽!今天心血来潮给大家带来了《f != f 什么时候可能为真?》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到,若是你正在学习Golang,千万别错过这篇文章~希望能帮助到你!

问题内容

谁能详细说明一下syscalls/js的主题,为什么在第57行有一个声明

if f != f { ... }

f 的类型为 float64)。

这怎么可能? i != i 这样的语句什么时候可以在 go 中成为 true


解决方案


例如,如果 f 的类型为 float64,并且其值是表示“不是数字”的特定值,您可以从 math.NaN() 获取该值。 nan 根据定义,不等于任何其他 float64 值,包括 zqbczq bnan 本身。 float64 类型使用 IEEE-754 标准,该标准表示只有 nan 满足 f != f 不等式。

var f float64 = math.NaN()
fmt.Println(f != f)

这将打印 true,请在 Go Playground 上尝试一下。

推理参见What is the rationale for all comparisons returning false for IEEE754 NaN values?

好了,本文到此结束,带大家了解了《f != f 什么时候可能为真?》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>