为什么Kotlin认为负零小于正零

Abd*_*aby 5 ones-complement kotlin

我刚刚开始学习Kotlin,我在基本类型的文档中遇到了一个奇怪的句子:

-0.0被认为小于0.0

我知道它们的值在补码中不会相同,但我不知道如何在代码中使用它们.

hot*_*key 7

不符合IEEE 754标准的擦除浮点比较的主要目的是,当您在集合中使用浮点数并作为排序键时,您不希望根据标准相等的值相互混合.例如,您不希望在地图中混合-0.00.0作为键(您可能需要这些键的两个不同值).

同样地,您希望地图NaN与自身匹配,尽管标准声明NaN!= NaN.

并且,当您对一组项目进行排序时,您希望NaN与其他数字一起正确排序,即使标准说它与其他元素无法比较(遵循此处的标准甚至可能会破坏排序算法).

请注意,这些规则仅适用于静态不知道对象属于浮点类型的情况,实际上,浮点类型与通用用例和集合相匹配.相反,数学用例通常直接使用数字类型(不删除它们Any或类型参数),因此应用IEEE 754规则.