2017-01-15 50 views
0

我正在製作一個基本的計算器,它必須使用ReadLines從文本文件中的兩行讀取,然後用逗號分隔(),並使用這些數字進行計算。我可以讀取和分割文件,但實際上引用分割數據以供計算使用並不像我所希望的那樣工作。 文本文件是這樣的:C# - 使用從文本文件中的行分割的數字

500, 600, 700, 800, 900 
0.1, 0.2, 0.3, 0.4, 0.5 

這是我到目前爲止的代碼:

private void btnCalculateEmployeeTax_Click(object sender, EventArgs e) 
    { 
     string[] rates = File.ReadLines(@"E:\\path.txt").ToArray(); 

     string str1 = rates[0], str2 = rates[1]; 

     string[] income = str1.Split(','); 
     string[] tax = str2.Split(','); 

     int wages = 40*int.Parse(txtHourlyRate.Text); 

     if (wages < income[0]) 
      { 
      MessageBox.Show("Less than 500"); 
      MessageBox.Show ("Total tax is $" + (wages*tax[0])); 

     } 
     else 
     { 
      MessageBox.Show("More than 500"); 
     } 

顯然,這是內部的,如果被踢的錯誤/ else語句代碼 - 這只是給你瞭解我想如何使用這些數字。有沒有辦法將文本文件中的每個數字分配給本地變量?或者有什麼我在這裏嘗試的工作?

爲菜鳥問題提前道歉。

+0

「計算不起作用」是什麼意思?解釋什麼是錯的,什麼是正確的。 – Enigmativity

+0

http://stackoverflow.com/questions/2959161/convert-string-to-int-array-using-linq複製粘貼準備好您的分割代碼... –

回答

0

首先,如果你想解決這個問題,你需要CONVER stringint

if (wages < int.Parse(income[0])) 
{ 
    MessageBox.Show("Less than 500"); 
    MessageBox.Show ("Total tax is $" + (wages*tax[0])); <- the same problem will be here 
} 

,但我認爲這將是最好創建數組的double代替string

+0

謝謝,是的,你是對的。收入與解析工作,但: '(工資* int.Parse(稅[0]))' 似乎沒有工作,但它的處理與收入一樣...? – Onejo578

+0

@ Onejo578好吧,我會建議你試試這種方式看看https://dotnetfiddle.net/yxG3Xw,讓我知道它是否適合你。謝謝 – Marusyk

+0

破解它!非常感謝你花時間陪伴。 – Onejo578

1

可以數組轉換爲字符串整數。 你可以這樣做

var result = income.Select(int.Parse).ToArray(); 
+0

很好。但我認爲應該有'Double.Parse'。 – Marusyk

+0

貨幣數據類型應該使用小數而不是double。這避免了在二進制和denary分數之間轉換時出現的某些錯誤。 我會推薦decimal.Parse()over double.Parse() – Grimley