NSSet:我应该在NSSet中使用float / double吗?

时间:2014-12-16 15:32:37

标签: ios objective-c macos cocoa nsset

我们知道,比较浮点数时会出现浮点数精度问题。

此外,NSSet使用相等比较来保持元素的唯一性。

那么当NSSet存储具有float / double的NSValues时会发生什么,

我们是否应该在NSSet中使用float来避免浮点精度问题?

1 个答案:

答案 0 :(得分:4)

  

比较浮点数时存在浮点数精度问题。

准确地说,只有平等的比较才会出现问题。不幸的是,这是NSSet所做的那种比较。

  

那么NSSet库存NSValues / float的{​​{1}}会发生什么?

它处理的数字彼此非常接近,但与集合中的不同项目不完全相同。这就是为什么在double中使用浮点数时应该非常小心的原因。理想情况下,如果可以,你应该避免使用它。