![]() |
Преобразование строки в число зн=Число(стр); Если стр равно, например, "132", то все нормально. А если, например, "132*", то имеем ошибку "Преобразование значения к типу Число не может быть выполнено". А мне бы надо, чтобы "132*" преобразовывалось в 0. Как бы попроще сделать ? (Посимвольный анализ строки на нечисловые символы очевиден, но неинтересен). |
попытка зн=Число(стр); исключение зн=0; конецпопытки |
1-angro >Так и сделал временно, но поморщился. |
Неявное преобразование, например, при записи значения в типизированный реквизит формы. Не? |
3-roma n >Не... Кошерно: ПривестиЗначение() |
4-roma n >Это, насколько я понимаю, для реквизита на форме. А мне надо просто значение строкового реквизита преобразовать в числовое. |
4-roma n > всё равно для чего - это метод описания типов. |
6-roma n >По-моему, мутновато получится. Даже почитав синтакс-помощник, не вкурю как это может выглядеть в моем случае... |
если не использовать посимвольный анализ - придется что-нибудь другое, которое тоже потребует вычислительных ресурсов. . ну и вдобавок например 1123.45d-7 - вполне себе правильная символьная запись числа. |
7-Marlboro > ОписаниеТипаЧисло = Новый ОписаниеТипов("Число"); МоёЧисло = ОписаниеТипаЧисло.ПривестиЗначение(МояСтрока); |
9-roma n >Ага. А просто инициализировать переменную числовым значением (МоеЧисло=0) вместо Новый ОписаниеТипов("Число") прокатит ? |
8-Чучундер >В общем случае ты прав. Но у меня задача проще - сравниваю артикул (строковый) с кодом (числовым). Если строковый артикул не "чисто число", то считаем, что он 0 и все. |
(11) а зачем считаем что он ноль? |
12-angro >Да по логике задачи так проще, интересуют только "числовые" артикулы |
10-Marlboro >[quote=Marlboro;26993198]А просто инициализировать переменную числовым значением (МоеЧисло=0) вместо Новый ОписаниеТипов("Число") прокатит ?[/quote] Нет, тебе нужна переменная, инициализированная значением типа ОписаниеТипов. Иначе применить метод ПривестиЗначение() будет не к чему. Или пиши в переменную жёсткой типизации (см 3) |
| Текущее время: 12:17. Часовой пояс GMT +3. |