c# - 从小数数组中获取中值
问题描述
我需要从一组数字中计算出所有平均值(众数、平均值、中位数、范围)。
计算器正在接受输入NumericUpDown
并将它们添加到 alistBox
中,listBox 项目被添加到 a 中List<Decimal>
(因为打印到标签似乎更容易)。
对于每种平均方法,列表都转换为一个,Array
因为它似乎更容易计算。
不会撒谎,我什至不知道从哪里开始中位数......
我已经从 StackOverflow 上的各种解决方案中复制了一些代码,但它们都不起作用,因为它们不是为小数编写的,而且老实说,我不太了解代码。
添加号码
//Add number to list and retun to 0.
private void btnAddNums_Click(object sender, EventArgs e)
{
//Add selcted item from listbox
listBoxNumbers.Items.Add(numUpDownAvg.Value);
//Create new instance of listNumbers
List<Decimal> listNumbers = new List<Decimal>();
//for each decimal in listbox...
foreach (Decimal listItems in listBoxNumbers.Items)
{
//Add to listNumbers
listNumbers.Add(listItems);
numUpDownAvg.Value = 0;
}
//iterate though list printing each item seperate by a comma
for (int i = 0; i < listNumbers.Count; i++)
{
txtBoxNumbers.Text = (String.Join(",", listNumbers));
}
//print list to console
Console.WriteLine(String.Join(",", listNumbers));
}
中位数
//This button prints median to results
private void btnMedian_Click(object sender, EventArgs e)
{
//Create new instance of listNumbers
List<Decimal> listNumbers = new List<Decimal>();
//for each decimal in listbox...
foreach (Decimal listItems in listBoxNumbers.Items)
{
//Add to listNumbers
listNumbers.Add(listItems);
}
//Convert list to array
decimal[] listArrayofNumbers = listNumbers.ToArray();
Array.Sort(listArrayofNumbers);
var n = listArrayofNumbers.Length;
decimal median;
var isOdd = n % 2 != 0;
if (isOdd)
{
median = listArrayofNumbers[(n + 1) / 2 - 1];
}
else
{
median = Convert.ToDecimal(listArrayofNumbers[n / 2 - 1] + listArrayofNumbers[n / 2]) / 2.0d;
}
// Console.WriteLine(median);
}
}
错误是median = Convert.ToDecimal(listArrayofNumbers[n / 2 - 1] + listArrayofNumbers[n / 2]) / 2.0d;
错误说“运算符”/“不能与十进制或双精度类型一起使用”
假设我需要在某处转换为十进制?显然 Convert.ToDecimal 是不对的......
蒂亚!
解决方案
推荐阅读
- c# - 无法实现 RequestHandler 工作 CefSharp winforms C#
- powershell - 用于操作分隔文本文件的 PowerShell 脚本
- angular - 如何从angular9中的子组件重定向到父路由?
- r - 通过将一个列表扩展到加入列表的长度来将列表连接在一起
- java - java的.asparallel()方法中的'batchsize'是什么
- java - Android 通知重要性无法更改
- xcode - 为什么我的故事板segues纵横交错?
- python-3.x - 如何使用 matplotlib.pyplot 在条形图和数据表之间创建空间?
- android - 安全区的空间可以被任何东西填满吗?
- python - Pyspark SQL 选择列为 NaN 的数据