将值四舍五入到C#中的某些值列表

前端之家收集整理的这篇文章主要介绍了将值四舍五入到C#中的某些值列表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个双值列表,我想将变量的值舍入到只有那个数字列表

例:

列表内容为:{12,15,23,94,35,48}

变量的值为17,因此它将舍入为15

如果变量的值小于最小数,则它将四舍五入到它,如果它的值大于最大数,它将四舍五入到它.

列表内容总是根据外部因素而变化,所以我无法强调我想要向上或向下舍入的值.

怎么能在C#中做到?

解决方法@H_403_16@
这是使用LINQ的方法
var list = new[] { 12,48 };
var input = 17;

var diffList = from number in list
               select new {
                   number,difference = Math.Abs(number - input)
               };
var result = (from diffItem in diffList
              orderby diffItem.difference
              select diffItem).First().number;

编辑:重命名一些变量,以便代码不那么混乱……

编辑:

list变量是int的隐式声明数组.第一个LINQ语句diffList定义了一个匿名类型,它具有列表中的原始数字(数字)以及它与当前值(输入)之间的差异.

第二个LINQ语句结果按顺序命令匿名类型集合,这是你的“舍入”要求.它接受该列表中的第一项,因为它将具有最小的差异,然后仅从匿名类型中选择原始.number.

原文链接:https://www.f2er.com/csharp/98487.html

猜你在找的C#相关文章