一尘不染

浮点数排序数组

node.js

我有一个浮点数数组:

[ 82.11742562118049, 28.86823689842918, 49.61295450928224, 5.861613903793295 ]

在数组上运行sort()后,我得到了:

[ 28.86823689842918, 49.61295450928224, 5.861613903793295, 82.11742562118049 ]

请注意,JavaScript(节点)的5.8 …大于49.6…。这是为什么?

如何正确地对这些数字进行排序?


阅读 355

收藏
2020-07-07

共1个答案

一尘不染

传递排序函数:

[….].sort(function(a,b) { return a - b;});

结果:

[5.861613903793295, 28.86823689842918, 49.61295450928224, 82.11742562118049]

从MDN

如果未提供compareFunction,则通过将元素转换为字符串并按字典顺序(“字典”或“电话簿”,而非数字)顺序比较字符串来对元素进行排序。

2020-07-07