gpt4 book ai didi

c# - 对其中包含 NaN 的 Double 数组进行排序

转载 作者:可可西里 更新时间:2023-11-01 07:56:14 25 4
gpt4 key购买 nike

这更像是一个“你能解释一下吗”类型的问题,而不是其他任何问题。

我在工作中遇到一个问题,我们在表格中使用 NaN 值,但是当表格被排序时,它以一种非常奇怪的方式出现。我认为 NaN 搞砸了一些东西,所以我编写了一个测试应用程序来查看这是否属实。这就是我所做的。

static void Main(string[] args)
{
double[] someArray = { 4.0, 2.0, double.NaN, 1.0, 5.0, 3.0, double.NaN, 10.0, 9.0, 8.0 };

foreach (double db in someArray)
{
Console.WriteLine(db);
}

Array.Sort(someArray);
Console.WriteLine("\n\n");
foreach (double db in someArray)
{
Console.WriteLine(db);
}

Console.ReadLine();
}

结果是:

之前:

4,2,NaN,1,5,3,NaN,10,9,8

之后:

1,4,NaN,2,3,5,8,9,10,NaN

所以是的,NaN 使排序后的数组以一种奇怪的方式排序。

引用 Fry; “为什么是那些东西?”

最佳答案

我相信那是因为

a < NaN == false
a > NaN == false
a == NaN == false

所以对它们的比较失败了,这就打乱了整个排序。

关于c# - 对其中包含 NaN 的 Double 数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5123659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com