日期:2014-05-17  浏览次数:20984 次

求助,c#数值比较
-5
-4.75
-4.5
-4.25
-4
-3.75
-3.5
-3.25
-3
-2.75
-2.5
-2.25
-2
-1.75
-1.5
-1.25
-1
-0.75
-0.5
-0.25
0
0.25
0.5
0.75
1
1.25
1.5
1.75
2
2.25
2.5
2.75
3
3.25
3.5
3.75
4
4.25
4.5
4.75
5
5.25
5.5
5.75
6
6.25
6.5
6.75
7
7.25
7.5
7.75
8
8.25
8.5
8.75
9
9.25
9.5
.....
40

已知这些数字
我随便输入一个数怎么判断我输入的这个数字离以上哪个最近??
------最佳解决方案--------------------

void Main()
{
var list=new int[]{11,22,33,1,2,4,7,9};
int x=20;
var y=list.Select(s=>new{s,v=(s-x)}).OrderBy(m=>Math.Abs(m.v)).First().s;
Console.WriteLine(y);  //22
}

------其他解决方案--------------------
原数组每个数乘以4得到 -20 -19 .....  160  比如输入一个数5.5  用5.5乘以4 结果4舍5入 然后再除以4便是离最近的哪个数
------其他解决方案--------------------
把上面的数据为数组,把数组里的数据全减去你输入的数后,取数组的Min()值
------其他解决方案--------------------
就行q107770540那样,用LinQ,选出差值,然后排序
------其他解决方案--------------------
就行q107770540那样,用LinQ,选出差值,然后排序