Страница: 1 |
Страница: 1 |
Вопрос: Перевести String в Integer
Добавлено: 15.11.06 20:01
Автор вопроса: -АлександР- | Web-сайт:
Привет всем!
Как перевести тип String в Integer.
Почему-то cInt не рулит.
Вопрос глупый, но - ... деваться некуда.
Помогите
Ответы
Всего ответов: 12
Номер ответа: 1
Автор ответа:
»VladikComper«
ICQ: 419668582
Вопросов: 23
Ответов: 147
Web-сайт:
Профиль | | #1
Добавлено: 15.11.06 20:05
Уточните что случается при использовании cInt и значение String. Нужен код чтобы понять, почему ничего не получается!
Номер ответа: 2
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #2
Добавлено: 15.11.06 20:24
самый правильный способ, имхо, Integer.Parse
Номер ответа: 3
Автор ответа:
Sacred Phoenix
ICQ: 304238252
Вопросов: 52
Ответов: 927
Профиль | | #3
Добавлено: 15.11.06 20:49
а по-моему все равно все сводится к Convert.ToXXX
Номер ответа: 4
Автор ответа:
Viper
ICQ: 249094859
Вопросов: 0
Ответов: 310
Профиль | | #4
Добавлено: 16.11.06 10:49
Все это конечно интересно, но пока автор не уточнит, почему у него получаются проблемы с CInt дальнейшие рассуждения не имют смысла
Номер ответа: 5
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #5
Добавлено: 16.11.06 18:00
а Val(Expression) устарел?
Номер ответа: 6
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #6
Добавлено: 16.11.06 18:58
В дотнете - да
Номер ответа: 7
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #7
Добавлено: 18.11.06 18:37
Dim formGraphics As System.Drawing.Graphics
formGraphics = pctMain.CreateGraphics()
formGraphics.DrawLine(Pens.Blue, 100, 100, CInt(TextBox1.Text), 100)
formGraphics.Dispose()
End Sub
CInt(TextBox1.Text) - возвращает нуль при любых значениях TextBox1.Text
Номер ответа: 8
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #8
Добавлено: 18.11.06 19:11
будешь смеяться, но у меня
Dim foo As Integer = CInt(TextBox1.Text)
End Sub
возвращает 12, когда в боксе написано 12.
совет на все ошибки: экспериментируй пошагово на маленьких кусках кода; просматривай в дебаге - есть окна watch, immediate - грех не пользоваться; не вводи в бокс значения в которых неуверен, типа "2,5"; добавляй промежуточные переменные.
А вообще Cint - здесь использовать неправильно. оно может и сработает, но вообще-то CInt короткий эквивалент CType(,Integer) и призван дать понять препроцессору, что переменная типа Object является на самом деле переменной типа Integer (как и CStr,SSng,CDbl - о чём свидетельствует синее подкрашивание этих слов). Просто препроцессор делает скидку на кривые руки и добавляет ковертацию самостоятельно.
Номер ответа: 9
Автор ответа:
-АлександР-
Вопросов: 55
Ответов: 1008
Web-сайт:
Профиль | | #9
Добавлено: 18.11.06 20:35
А бл. есть, разобрался, спасибо, Neco
Cпасибо всем!
Позже оказлось (вы сейчас будете надо мной смеятья, только не кидайтесь камнями), что то, что я привел тоже работает и переводит... но этоя стормозил ):
Номер ответа: 10
Автор ответа:
Viktor
Вопросов: 2
Ответов: 18
Профиль | | #10
Добавлено: 02.07.07 17:14
Вижу проблема решена. Хочу только поделится опытом - такая проблема встречается довольно часто в VB.NET. Встроенные функции принимают толко готовые переменные или числа, но не "сгенерированные на лету".
Номер ответа: 11
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #11
Добавлено: 02.07.07 17:19
А что вы понимаете под "сгенерированными на лету"?
Номер ответа: 12
Автор ответа:
Viktor
Вопросов: 2
Ответов: 18
Профиль | | #12
Добавлено: 02.07.07 17:35
Может я не понятно выразился, Прошу извенить. Я несколько раз столкнулся с проблемой: встренная функция VB.NET не хочет работать если ей передовать параметр типа CInt(SmthStr). После нескольких попыток у меня появилась привычка инициализировать все переменные