2011-04-05 58 views
1

我需要编写一个简单的方法,获取一个字符串作为输入,检查它是否是一个数字,并显示其原始格式中的数字。C#,显示一个数字字符串作为原始格式的数字

例如:

输入:输出:

"123"   123 
"-123"  -123 
"1.17"   1.17 
"abd"   ERROR 

我在想int.parse和double.parse但反正是有检查字符串表示是int或double?

谢谢!

+0

提示:在字符串中的任何有效的int可以被解析为一个双。 – 2011-04-05 07:54:48

+0

无论如何,输出格式将取决于您的CultureInfo。除非使用Invariant文化,否则输出将自动将没有小数的双精度格式化为整数。 – 2011-04-05 07:55:35

回答

1

的TryParse将处理它。 http://msdn.microsoft.com/en-us/library/f02979c7.aspx

private static void TryToParse(string value) 
    { 
     int number; 
     bool result = Int32.TryParse(value, out number); 
     if (result) 
     { 
     Console.WriteLine("Converted '{0}' to {1}.", value, number);   
     } 
     else 
     { 
     if (value == null) value = ""; 
     Console.WriteLine("Attempted conversion of '{0}' failed.", value); 
     } 
    } 
9

您可以使用Decimal.TryParse(),然后只显示字符串,如果它是一个数字,或者错误,如果它不是。

0
 double result_double; 
     int result_int; 
     if (double.TryParse(your_string, out result_double)) 
      Console.WriteLine(result_double); 
     else if (int.TryParse(your_string, out result_int)) 
      Console.WriteLine(result_int); 
     else Console.WriteLine("error"); 
+0

第二个分支是多余的。 – 2011-04-05 09:02:38