Какой самый простой способ конвертировать "6.00000000000000" в целочисленное свойство - PullRequest
2 голосов
/ 10 октября 2010

У меня есть объект Person со свойством age (int)

Я анализирую файл, и это значение приходит в следующем формате "6.00000000000000"

, что является лучшим способом для преобразованияэта строка в int в C #

Convert.ToInt32() or Int.Parse() gives me an exception:

Неправильная строка ввода.

Ответы [ 2 ]

11 голосов
/ 10 октября 2010

Это зависит от того, насколько вы уверены, что входные данные всегда будут придерживаться этого формата. Вот несколько альтернатив:

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 голос
/ 10 октября 2010
int age = (int) double.Parse(str);
int age = (int) decimal.Parse(str);
...