2011-09-07 78 views
1

箱更大的價值,我要檢查,如果第一個文本框中的值比其他類似的大:檢查在C#中包含數字

if (textbox1.Text > textbox2.Text){// do stuff}

所以我怎樣才能讓這樣的事情。

+1

您可能想接受一個答案 – jolySoft

+0

這裏的答案有什麼問題? http://stackoverflow.com/questions/7323118/add-numbers-in-c –

回答

3

您需要在文本框中的文本分析,首先一個int

if (int.Parse(textbox1.Text) > int.Parse(textbox2.Text)){// do stuff} 

但要注意:這將拋出一個異常,如果任何輸入的文本不能被解析到一個int。清潔的方法是使用TryParse,如果你不能肯定的是,輸入的文本始終是正確的格式:

int number1; 
int number2; 

if(int.TryParse(textbox1.Text, out number1) 
    && int.TryParse(textbox2.Text, out number2) 
    && number1 > number2) 
{ 
    // Do stuff 
} 
1
if (Convert.ToInt32(textbox1.Text) > Convert.ToInt32(textbox2.Text)) 

{// do stuff} 

if (int.Parse(textbox1.Text) > int.Parse(textbox2.Text)) 

{// do stuff} 
2

你只需要轉換字符串到數字。假設我們正在談論的整數和int適合你,你可以做到這一點的範圍:

var value1 = int.Parse(textBox1.Text); 
var value2 = int.Parse(textBox2.Text); 

if (value1 > value2) { ... } 

然而,這會讓你接觸到的轉換產生(異常例如,如果一個文本不是數字但字符串)。在這種情況下,TryParse可讓您檢測到這種情況並做出相應響應。

int value1, value2; 
if (!int.TryParse(textBox1.Text, out value1)) { 
    // textBox1 does not hold a number 
} 
else if (!int.TryParse(textBox2.Text, out value2)) { 
    // textBox2 does not hold a number 
} 
else { 
    // OK, we have both numbers: 
    if (value1 > value2) { ... } 
} 
1
int value1 = int.Parse(textbox1.Text); 
int value2 = int.Parse(textbox2.Text); 

if (value1 > value2) 
{ 
    // do stuff 
} 
0

使用CompareValidator類:

<asp:CompareValidator 
ID="cmpAmount" 
runat="server" 
ControlToCompare='TextBox2' 
ControlToValidate="TextBox1" 
Type="Double" 
Operator="GreaterThanEqual" /> 
1
int text1 = Convert.ToInt32(textBox1.Text); 
int text2 = Convert.ToInt32(textBox2.Text); 
if(text1 < text2) 
{ 
// do something 
} 
3
double value1=Double.Parse(textBox1.Text); 
double value2=Double.Parse(textBox2.Text); 
if (value1>value2) 
....... 

這會做你的工作或你需要更多的東西?

+0

是認爲它可能是一個浮點的唯一的人;) – jolySoft

+0

呸...這是我得到清爽的前回答。 –

1

考慮你正在處理的文本框(所以我想文字是由用戶插入),我會建議使用int.TryParse方法:

private bool Validate() 
{ 
    int v1 = 0; 
    int v2 = 0; 
    if (!int.TryParse(tb1.Text, out v1) || int.TryParse(tb2.Text, out v2)) 
     return false; 

    // Make the comparison 
    return v1 > v2; 
} 

更簡潔的版本(但不太清楚,至少對我來說) :

private bool Validate() 
{ 
    int v1 = 0; 
    int v2 = 0; 
    return int.TryParse(tb1.Text, out v1) && 
      int.TryParse(tb2.Text, out v2) && 
      v1 > v2; 
} 
+0

你應該總是將變量傳遞給函數 –

+0

好吧,假設它是全局驗證函數,答案是否定的。如果我很好理解他會驗證某種形式,也許他也想檢查其他控制。 –

2

由於每個人都在假設整數,我會成爲異類......

double value1, value2; 

Double.TryParse(textBox1.Text, out value1); 
Double.TryParse(textBox2.Text, out value2); 

if(value1 < value2){ ... } 
+0

+1 for TryParse – Reniuz

1

複雜的FTW?

if (CompareNumbers(textbox1.Text,textbox2.Text) > 0){// do stuff} 

int CompareNumbers(string s1, string s2) 
{ 
    if (s1 == s2) 
    { 
     return 0; 
    } 
    if (s1 == null) 
    { 
     return -1; 
    } 
    if (s2 == null) 
    { 
     return 1; 
    } 
    if (s1.Length != s2.Length) 
    { 
     return (s1.Length - s2.Length); 
    } 
    for (int index = 0; index < s1.Length; index++) 
    { 
     int ch1, ch2, compare; 

     ch1 = (s1[index] - 0x30); 
     ch2 = (s2[index] - 0x30); 
     compare = 0; 
     if (ch1 < 0 || ch1 > 9) 
     { 
      compare = -1; 
     } 
     if (ch2 < 0 || ch2 > 9) 
     { 
      compare += 1; 
     } 
     if (compare != 0) 
     { 
      return compare; 
     } 
     if (ch1 != ch2) 
     { 
      return (ch1 - ch2); 
     } 
    } 
    return 0; 
} 
+0

如果您投給[我]會爲您的投票(http://stackoverflow.com/questions/7323118/add-numbers-in-c/7323446#7323446) – Grokodile