2011-09-26 58 views
0

嗯,我已經嘗試了ToInt,ToString,而且我沒有選擇。 我試圖從彼此減去2個標籤文本。 (那些包含數字從RSS)減去( - )2文本標籤互相取得結果

我在看什麼:

 lblOldID.Text = nodeChannel["oldid"].InnerText; 
     lblNewID.Text = nodeChannel["newid"].InnerText; 

所以我們說OLDID包含 「500」 和newid的 「530」。

但由於某種原因,我不能減去( - )它們。 我想要什麼:

 lblResultID.Text = lblOldID.Text - lblNewID.Text; 

實例:結果= 530 - 500

那麼這怎麼可能?

+1

那麼,你想要得到的結果是字面'530 - 500'? –

回答

3

您需要將文本轉換爲整數。

//These are the ints we are going to perform the calculation on 
Int32 oldID = 0; 
Int32 newID = 0; 

//TryParse returns a bool if the string was converted to an int successfully  
bool first = Int32.TryParse(lblOldID.Text, out oldID); 
bool second = Int32.TryParse(lblNewID.Text, out newID); 

//Check both were converted successfully and perform the calculation 
if(first == true && second == true) 
{ 
    lblResultID.Text = (oldID - newID).ToString(); 
} 
else 
{ 
    lblResultID.Text = "Could not convert to integers"; 
} 

TryParse防止被拋出異常,如果在標籤上的數據不能被轉換爲整數。相反,它返回false(或如果數字解析成功,則返回true)。

+2

應該是「轉換」而不是「轉換」。 +1 – Enigmativity

+1

解析和演員是兩個非常不同的概念。 –

+0

對不起,改正了。我最初要做一個明確的演員,但改變了代碼,因爲我覺得在這種情況下,這種方式更強大,更好。 – keyboardP

3

如果你想在標籤的文本是,從字面上看,530 - 500,在連接字符串,像這樣:

lblResultID.Text = lblOldID.Text + " - " + lblNewID.Text; 

如果你想在標籤的文本是減去標籤所代表的數字的結果,轉換他們先爲整數:

int old = Int32.Parse(lblOldID.Text); 
int new = Int32.Parse(lblNewID.Text); 
lblResultID.Text = (old - new).ToString(); 

(你需要一些錯誤在那裏檢查,如果有,要麼值可能不乾淨轉換爲整數的可能性)

0

也許是因爲你真的應該解析它們:

lblResultID.Text = (int.Parse(lblOldID.Text) - int.Parse(lblNewID.Text)).ToString(); 

或者字符串格式:

lblResultID.Text = lblOldID.Text + " - "+ lblNewID.Text;