2013-08-21 117 views
0

我有一个用户输入9个数字的文本框。我想这个号码的最后两位数字比较敏:整数比较C#

 int myInt = 34; 
     int numberToCompare = Convert.ToInt32(textBox1.Text); 
     if (numberToCompare == myInt) 
     { 
      MessageBox.Show("Vat number correct"); 
     } 

如果在文本框中输入等于说:876545434我怎么能砍剩下的数字:8765454(34)然后我就可以比较到myInt?文本框号码将始终保持9位数!

更新:

 int myInt = 34; 
     int numberToCompare = Convert.ToInt32(textBox1.Text.Substring(7,2)); 
     if (numberToCompare == myInt) 
     { 
      MessageBox.Show("Vat number correct"); 
     } 
     else 
     { 
      MessageBox.Show("Vat number incorrect"); 
     } 

但我想知道为什么这是一个坏方法:

我用这种方法管理的呢?

+0

听起来你应该使用字符串,而不是'int's。记住:_如果你不能添加它,它不是一个数字_。 – SLaks

+0

你总是可以添加一个int tho?这是没有意义的? –

+0

因为如果你的字符串不是9个数字长的话 –

回答

7

在很多方面是不理想的,但串类具有的endsWith()方法。如果它结束与“34”,你会有一场比赛。当然一个简单的解决方案。

+0

不错!会试试看。 –

+0

你打败了我...... upvoted :-) –

+0

什么约-1234? –

0

如果textbox1.text = 876545434

if(txtBoxInput.length > 4) 
{ 
    Textbox1.text.substring(txtBoxInput.length - 2 ,2) 
} 

会给你34

+2

这是非常低效的,而不是仅仅解析和使用mod。 –

+0

是的,事实是有多种方法来给猫皮。只取决于你想要完成的事情。在处理器上,今天做这1次并不重要。即使在循环中多次执行此操作也不会产生太大的影响 –

+0

此方法的输入为34,2,134等。 – Servy

0
String txtBoxInput = "1234567890"; 

try{ 
    //Some validation for Servy 
    if(txtBoxInput!=null && txtBoxInput is String && txtBoxInput.Length>1) 
    { 
    String last2Numbs = txtBoxInput.Substring(txtBoxInput.Length-2); 

    Int32 lasst2NumbersInt; 
    bool result = Int32.TryParse(last2Numbs, out last2NumbsInt); 

    if(result && last2NubsInts == MyInt) 
     MessageBox.Show("Vat number correct"); 
    } 
} 
catch(Exception ServysException) 
{ 
    MessageBox.Show("Uhhhh ohh! An over engineered simple answer threw an error: " + ServysException.Message); 
} 
+0

你的答案会抛出一个输入为“0”的异常。 – Servy

+0

@Servy我刚刚更新它,以正确的语法。我只是跑它,它的工作 –

+0

如果字符串只有一个字符长度,它会给你'substring'的范围错误的索引。 – Servy

0
int myInt = 34; 
    int numberToCompare = Convert.ToInt32(textBox1.Text); 
    if ((numberToCompare % 100) == myInt) 
    { 
     MessageBox.Show("Vat number correct"); 
    }