我需要编写一个简单的方法,获取一个字符串作为输入,检查它是否是一个数字,并显示其原始格式中的数字。C#,显示一个数字字符串作为原始格式的数字
例如:
输入:输出:
"123" 123
"-123" -123
"1.17" 1.17
"abd" ERROR
我在想int.parse和double.parse但反正是有检查字符串表示是int或double?
谢谢!
我需要编写一个简单的方法,获取一个字符串作为输入,检查它是否是一个数字,并显示其原始格式中的数字。C#,显示一个数字字符串作为原始格式的数字
例如:
输入:输出:
"123" 123
"-123" -123
"1.17" 1.17
"abd" ERROR
我在想int.parse和double.parse但反正是有检查字符串表示是int或double?
谢谢!
的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);
}
}
您可以使用Decimal.TryParse()
,然后只显示字符串,如果它是一个数字,或者错误,如果它不是。
int.TryParse()和double.TryParse()将为您完成这项工作。
解析操作的结果存储在输出参数见http://www.dotnetperls.com/int-tryparse
双的TryParse方法的工作原理相同...
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");
第二个分支是多余的。 – 2011-04-05 09:02:38
提示:在字符串中的任何有效的int可以被解析为一个双。 – 2011-04-05 07:54:48
无论如何,输出格式将取决于您的CultureInfo。除非使用Invariant文化,否则输出将自动将没有小数的双精度格式化为整数。 – 2011-04-05 07:55:35