我们知道,比较浮点数时会出现浮点数精度问题。
此外,NSSet使用相等比较来保持元素的唯一性。
那么当NSSet存储具有float / double的NSValues时会发生什么,
我们是否应该在NSSet中使用float来避免浮点精度问题?
答案 0 :(得分:4)
比较浮点数时存在浮点数精度问题。
准确地说,只有平等的比较才会出现问题。不幸的是,这是NSSet
所做的那种比较。
那么
NSSet
库存NSValues
/float
的{{1}}会发生什么?
它处理的数字彼此非常接近,但与集合中的不同项目不完全相同。这就是为什么在double
中使用浮点数时应该非常小心的原因。理想情况下,如果可以,你应该避免使用它。