在数字排序期间保持精度

发布于 2024-12-12 08:12:44 字数 606 浏览 0 评论 0原文

我使用这个函数对数字数组进行排序,其中一些是小数。但在这种情况下,我丢失了这些值的 .0 。我想在指定时保留此精度,但在未指定时不添加它。

例如: [1.5, 2, 0.75, 1.0, 0.75] 应排序为 [2, 1.5, 1.0, 0.75] 但使用下面的函数排序为 [2, 1.5, 1, 0.75]

var sortNums = function( arr ) {
        // Quit if arr is not an array.
        if ( !$.isArray(arr) ) { return false; }

        // Sort highest to lowest:
        arr.sort(function(a,b) {return (b-a);}); 

        // Remove non-numeric vals and return:
        return $.map(arr, function(v) {if (typeof v === 'number') {return v;}}); 
};

I'm using this function to sort an array of number, some of which are decimals. But in the sort I'm losing the .0 on those values. I'd like to retain this precision when it's specified, but not add it when it isn't.

For example: [1.5, 2, 0.75, 1.0, 0.75] should sort to [2, 1.5, 1.0, 0.75] but using the function below it sorts to [2, 1.5, 1, 0.75]

var sortNums = function( arr ) {
        // Quit if arr is not an array.
        if ( !$.isArray(arr) ) { return false; }

        // Sort highest to lowest:
        arr.sort(function(a,b) {return (b-a);}); 

        // Remove non-numeric vals and return:
        return $.map(arr, function(v) {if (typeof v === 'number') {return v;}}); 
};

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

时光清浅 2024-12-19 08:12:44

JavaScript 删除尾随的小数零。

var x = 1.0;
x; // 1

如果你想保留小数,你需要将它们转换为字符串。如果需要的话,您可以在排序过程中将它们转换为数字。

JavaScript removes tailing decimal zeros.

var x = 1.0;
x; // 1

If you want to keep the decimals you need to cast them as strings. And you could then cast them as numbers in the sort process, if needed.

贪了杯 2024-12-19 08:12:44

它们本身就没有任何精度。但是 sort 已经可以正常工作,并且借助 JavaScript 无限有用的自动转换,- 可以为您完成这项工作。请参阅:http://jsfiddle.net/hqc33/

They don't have any sort of precision to begin with, per se. But sort already works properly and with JavaScript's infinitely useful automatic conversions, - does the work for you. See: http://jsfiddle.net/hqc33/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文