我有一个带有age属性(int)的Person对象
我正在解析一个文件,这个值的格式为“6.00000000000000”
将此字符串转换为C#
中的int的最佳方法是什么Convert.ToInt32() or Int.Parse() gives me an exception:
输入字符串的格式不正确。
答案 0 :(得分:11)
这取决于您对输入数据始终遵循此格式的信心。以下是一些替代方案:
string text = "6.00000000"
// rounding will occur if there are digits after the decimal point
int age = (int) decimal.Parse(text);
// will throw an OverflowException if there are digits after the decimal point
int age = int.Parse(text, NumberStyles.AllowDecimalPoint);
// can deal with an incorrect format
int age;
if(int.TryParse(text, NumberStyles.AllowDecimalPoint, null, out age))
{
// success
}
else
{
// failure
}
编辑:评论后将double
更改为decimal
。
答案 1 :(得分:1)
int age = (int) double.Parse(str);
int age = (int) decimal.Parse(str);