Какой самый простой способ получить строку со значением "76.10" в int, округленном до 76?
Я пробовал несколько разных способов использования Convert.ToInt32 и Decimal, но я не могу понять, что это правильно?
Изменить: здесь код Jon помог мне:
decimal t = Math.Round(decimal.Parse(info.HDDStatus));
int v = (int)t;
Самый простой способ - использовать Decimal.Parse
для его синтаксического анализа, а затем Math.Round
(или потенциально Math.Floor
в зависимости от того, как вы хотите обрабатывать цифры, такие как "76.7" ), чтобы округлить его. Затем преобразуйте в целое число только путем литья.
Я бы предложил использовать decimal
, а не double
, поскольку вы по сути говорите о десятичном числе (как это показано в тексте).
Точный метод анализа будет зависеть от культуры - ожидаете ли вы, что текст "76,10" появится в европейском контексте или будет всегда использоваться ". как десятичная точка, например?
Сначала преобразуйте его в двойное и используйте Math.Floor()
Сначала извлеките подстроку (76).
string s = "76.7";
int n = int.Parse(s.Substring(0, s.IndexOf('.')));