这已经得到了回答。我对C#比较新,我遇到了问题。我的程序不断尝试捕获错误。我已经查看了所有内容并改变了一切,但似乎没有任何效果。错误被抛出到第49行(其中发生用于读取文本文件的while循环)。有谁知道这可能是什么问题?我知道min / max / average可能还有其他一些问题,但我可以解决这个问题。我真的需要有人帮我修复文件读入数组。
错误代码为:输入字符串的格式不正确。在System.Number.StringToNumber 使用System.Collections.Generic; 使用System.ComponentModel; 使用System.Data; 使用System.Drawing; 使用System.Linq; 使用System.Text; 使用System.Windows.Forms; 使用System.IO;
namespace Total_Sales_BBrantley
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnCalc_Click(object sender, EventArgs e)
{
try
{
// Declare variable to hold the amount of sales
// Declare a constant for the array size
const int SIZE = 100;
// Create an array for the sales
double[] allSales = new double[SIZE];
// Declare a variable for holding the total value of sales
double total = 0.0;
// Declare a variable to hold the average
double average;
// Declare a variable to hold the highest value
double highest = double.MinValue;
// Declare a variable to hold the lowest value
double lowest = double.MaxValue;
int count = 0;
// Declare a StreamReader variable.
StreamReader readFile;
// Open the file and get a StreamReader object using a relative path
readFile = File.OpenText("Sales.txt");
while (!readFile.EndOfStream && count < allSales.Length)
{
ERROR ERROR ERROR: [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[ allSales[count] = int.Parse(readFile.ReadLine()); ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
// Increment count
count++;
}
// Close the file
readFile.Close();
lstSales.Items.Add("The file contains " + count + " items:");
for (int index = 0; index < count; index++)
{
lstSales.Items.Add(allSales[index]);
}
// Display the total
double sum = allSales.Sum();
lblTotal.Text = sum.ToString();
total += sum;
average = total / allSales.Length;
lblAverage.Text = average.ToString();
for (int index = 1; index < allSales.Length; index++)
{
if (allSales[index] > highest)
{
highest = allSales[index];
}
lblHighest.Text = highest.ToString();
}
for (int index = 1; index < allSales.Length; index++)
{
if (allSales[index] < lowest)
{
lowest = allSales[index];
}
lblLowest.Text = lowest.ToString();
}
}
catch (Exception ex)
{
// Display an error message on bad input from file
MessageBox.Show(string.Concat("Error calculating the sales. ", ex.Message, "\r\n", ex.StackTrace));
}
}
private void btnExit_Click(object sender, EventArgs e)
{
//Closes the application
this.Close();
}
}
}
答案 0 :(得分:2)
我认为问题在于您使用的是int.Parse而不是double.Parse。
答案 1 :(得分:0)
这是你的问题:
allSales[count] = int.Parse(readFile.ReadLine());
您的数组是一个Double数组,并且您将字段分配给整数值。将该行解析为Double而不是int。
allSales[count] = Double.Parse(readFile.ReadLine());