什么是将“6.00000000000000”转换为整数属性的最简单方法

时间:2010-10-10 13:46:54

标签: c# parsing integer

我有一个带有age属性(int)的Person对象

我正在解析一个文件,这个值的格式为“6.00000000000000”

将此字符串转换为C#

中的int的最佳方法是什么
Convert.ToInt32() or Int.Parse() gives me an exception:

输入字符串的格式不正确。

2 个答案:

答案 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);