avi7
asked on
Conversion problem
Hi,
I converted this code from VB to C# but it's still not working ... getting the following error: The name 'IsNumeric' does not exist in the current context
How I can make it to work in C#. Please advise. Thanks!
if ((IsNumeric(txtTax.Text) == false)) {
txtTax.Text = 0;
}
else if ((txtTax.Text == "")) {
txtTax.Text = 0;
}
I converted this code from VB to C# but it's still not working ... getting the following error: The name 'IsNumeric' does not exist in the current context
How I can make it to work in C#. Please advise. Thanks!
if ((IsNumeric(txtTax.Text) == false)) {
txtTax.Text = 0;
}
else if ((txtTax.Text == "")) {
txtTax.Text = 0;
}
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Use it this way:
for (int i = 0; i < textBox1.Text.Length; i++)
if (!char.IsNumber(textBox1.Text, i))
MessageBox.Show("Not Number");
sergiobg57, Does that handle numbers with minus signs and decimal points?
No, it doesn't, but it's adaptable for that purpose as well.
for (int i = 0; i < textBox1.Text.Length; i++)
if (!char.IsNumber(textBox1.Text, i) && textBox1.Text[i] != '.' && textBox1.Text[i] != '-')
{
MessageBox.Show("Not a Number");
break;
}
It may not matter, but sergiobg57's test isn't the same as IsNumeric.
IsNumeric checks for a valid number, with a single decimal point (if any), and check that the minus sign is the first character, if present. I also think it enforces at least one digit before the decimal point but am not sure about that.
IsNumeric checks for a valid number, with a single decimal point (if any), and check that the minus sign is the first character, if present. I also think it enforces at least one digit before the decimal point but am not sure about that.
Yeah, i see.
But as i said, everything is adaptable.
C# is a great language and you'll have freedom to do whatever is needed in fact.
Having the logic, you can recreate the same effects IsNumeric has.
But for his code, i believe it would be too much.
Any way, just for fun and profit...
But as i said, everything is adaptable.
C# is a great language and you'll have freedom to do whatever is needed in fact.
Having the logic, you can recreate the same effects IsNumeric has.
But for his code, i believe it would be too much.
Any way, just for fun and profit...
bool Decimal = false;
for (int i = 0; i < textBox1.Text.Length; i++)
if (!char.IsNumber(textBox1.Text, i))
{
if((0 != i && '-' == textBox1.Text[i]) ||
('.' == textBox1.Text[i] && Decimal))
{
MessageBox.Show("Not Number");
break;
}
if ('.' == textBox1.Text[i] && !Decimal)
Decimal = true;
}
sergiobg57, Looks good. A useful piece of code, and more straightforward to use than cross-calling to the VB runtime.
In fact, it was wrong.
During the night i'm not a good programmer.
Any way, a more readable code and free of bugs.
During the night i'm not a good programmer.
Any way, a more readable code and free of bugs.
bool Decimal = false, NaN = false;
for (int i = 0; i < textBox1.Text.Length; i++)
if (!char.IsNumber(textBox1.Text, i))
{
//only accepts minus as the first char
if ('-' == textBox1.Text[i] && i != 0)
NaN = true;
//decimal points cannot be duplicated
if('.' == textBox1.Text[i] && Decimal)
NaN = true;
//assure decimal point isn't duplicated
if ('.' == textBox1.Text[i] && !Decimal)
Decimal = true;
//if its not a number
if (NaN)
{
MessageBox.Show("Not a Number");
break;
}
}
ASKER
Thanks!
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
There is no IsNumreric in C#.
Here is a very good discussion of what you can do instead.
It involves using try/catch blocks:
http://www.codeproject.com/KB/cs/csharp-isnumeric.aspx