c# - 浮点 Equals 和 C# 中的等式运算符 (==) 有什么区别?
问题描述
在 C# 中,Single.Equals
返回一个值,该值指示 Single 的两个实例是否表示相同的值。
虽然单身Equality operator
(==
)
相等运算符 == 如果其操作数相等则返回 true ,否则返回 false。
(强调我的)。
这些比较方法之间的一个显着区别涉及 NaN:
float.NaN.Equals(float.NaN) => true
float.NaN == float.NaN => false
我理解为什么operator==
NaN 之间是错误的(在此处回答),但为什么Equals
不同?是否有其他值Equals
提供不同的结果operator==
?
解决方案
推荐阅读
- amazon-web-services - 如何使用 Marketplace 产品代码创建 AWS API Gateway 使用计划
- php - 致命错误:未捕获的错误:当我已经包含必要的文件时,不在对象上下文中使用 $this
- php - 我可以使用没有标签的 AJAX .post
- c# - 为什么在遍历基础列表中的项目时会触发 BindingSource.ListChanged 事件?
- python - 如何在python中构建节点列表后返回元素
- django - Django:如何只显示与当前用户对应的数据?
- java - 使用 node express 从 ignite 缓存中提取日期字段时出错
- elixir - Ecto 中的双向关系和多态关联
- java - 如何让 API 在 Android 中返回整数列表?
- python - fnmatch.fnmatch 是否与 Unix 模式文件匹配语法不兼容?