2013-11-25 24 views
0

这是尝试将分割字符串转换为int格式以显示用户输入时间,例如2:15表示2小时15分钟。我希望能够将这段时间乘以美元汇率并增加额外成本。有一个subAmount,然后总共都使用ToString。任何“蛛丝马迹”,将不胜感激将字符串转换为int以使用分割显示分隔时间

private void calulateButton_Click(object sender, EventArgs e) 
    { 
     string[] item = timeTextBox.Text.Split(':'); 
     int hours, mins, rate, cost; 
     int.TryParse(item[0], out hours); 
     Convert.ToInt64(item[0]); 
     int.TryParse(item[1], out hours); 
     Convert.ToInt64(item[1]); 
     int.TryParse(rateTextBox.Text, out rate); 
     int.TryParse(prescriptionTextBox.Text, out cost); 
     int prescription = cost; 
     int totalHours = hours; 
     subAmountLabel.Text = totalHours.ToString("f2"); 
     int total = (totalHours) * rate + cost; 
     totalAmountLabel.Text = total.ToString("f2"); 
    } 
+1

那么现在有什么问题呢?它做什么vs不做?你得到什么错误? – Arran

+3

您不想使用的任何特定原因http://msdn.microsoft.com/zh-cn/library/system.datetime(v=vs.100).aspx? – Naresh

+0

“(局部变量)INT totalHours (局部变量)INT速率 错误:运算符‘*’不能被应用到int类型和字符串的操作数” 更新代码作为我犯了一个错字< - 这里“*率' 通过线索我的意思是按时间乘以时间:1小时15分钟= 1:15 * $ 90.00 = $ 112.50 是否有更准确的方法等! – songsmif

回答

0

您的代码示例似乎完全有效的(除非你指定hours两次),但它包含了一些多余的线条。我固定的问题与hoursmins,摆脱不必要的变量和指令和编辑total配方,包括分钟,以及:

 private void calulateButton_Click(object sender, EventArgs e) 
    { 
     string[] item = timeTextBox.Text.Split(':'); 
     int hours, mins; 

     int.TryParse(item[0], out hours); 
     int.TryParse(item[1], out mins); 

     double rate, prescription; 
     double totalHours = hours + mins/60.0; 

     double.TryParse(rateTextBox.Text, out rate); 
     double.TryParse(prescriptionTextBox.Text, out prescription); 

     double total = totalHours * rate + prescription; 

     subAmountLabel.Text = totalHours.ToString("G"); 
     totalAmountLabel.Text = total.ToString("C"); 
    } 
+0

int.TryParse(rateTextBox.Text,out rate); – songsmif

+0

int.TryParse(rateTextBox.Text,out rate);对不起,它以红色标出,报告'...有一些无效的论点。' – songsmif

+0

编辑 - 这是因为'int'和'double'是不同的类型 – Nogard

0

这只是一个什么,我认为你正在做在黑暗中拍摄:

TimeSpan ts = TimeSpan.Parse(timeTextBox.Text); 

double rate, cost; 

double.TryParse(rateTextBox.Text, out rate); 
double.TryParse(prescriptionTextBox.Text, out cost); 

subAmountLabel.Text = ts.TotalHours.ToString("f2"); 
double total = ts.TotalHours * rate + cost; 
totalAmountLabel.Text = total.ToString("f2"); 
+0

谢谢,但这似乎并没有做到这一点作为分和总数是轨道 - 欢呼:) – songsmif