箱更大的價值,我要檢查,如果第一個文本框中的值比其他類似的大:檢查在C#中包含數字
if (textbox1.Text > textbox2.Text){// do stuff}
所以我怎樣才能讓這樣的事情。
箱更大的價值,我要檢查,如果第一個文本框中的值比其他類似的大:檢查在C#中包含數字
if (textbox1.Text > textbox2.Text){// do stuff}
所以我怎樣才能讓這樣的事情。
您需要在文本框中的文本分析,首先一個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
}
if (Convert.ToInt32(textbox1.Text) > Convert.ToInt32(textbox2.Text))
{// do stuff}
或
if (int.Parse(textbox1.Text) > int.Parse(textbox2.Text))
{// do stuff}
你只需要轉換字符串到數字。假設我們正在談論的整數和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) { ... }
}
int value1 = int.Parse(textbox1.Text);
int value2 = int.Parse(textbox2.Text);
if (value1 > value2)
{
// do stuff
}
使用CompareValidator類:
<asp:CompareValidator
ID="cmpAmount"
runat="server"
ControlToCompare='TextBox2'
ControlToValidate="TextBox1"
Type="Double"
Operator="GreaterThanEqual" />
int text1 = Convert.ToInt32(textBox1.Text);
int text2 = Convert.ToInt32(textBox2.Text);
if(text1 < text2)
{
// do something
}
double value1=Double.Parse(textBox1.Text);
double value2=Double.Parse(textBox2.Text);
if (value1>value2)
.......
這會做你的工作或你需要更多的東西?
是認爲它可能是一個浮點的唯一的人;) – jolySoft
呸...這是我得到清爽的前回答。 –
考慮你正在處理的文本框(所以我想文字是由用戶插入),我會建議使用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;
}
你應該總是將變量傳遞給函數 –
好吧,假設它是全局驗證函數,答案是否定的。如果我很好理解他會驗證某種形式,也許他也想檢查其他控制。 –
由於每個人都在假設整數,我會成爲異類......
double value1, value2;
Double.TryParse(textBox1.Text, out value1);
Double.TryParse(textBox2.Text, out value2);
if(value1 < value2){ ... }
+1 for TryParse – Reniuz
複雜的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;
}
如果您投給[我]會爲您的投票(http://stackoverflow.com/questions/7323118/add-numbers-in-c/7323446#7323446) – Grokodile
您可能想接受一個答案 – jolySoft
這裏的答案有什麼問題? http://stackoverflow.com/questions/7323118/add-numbers-in-c –