Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Преобразование строки в число (http://forums.kuban.ru/f1040/preobrazovanie_stroki_v_chislo-3103271.html)

Marlboro 25.09.2012 12:36

Преобразование строки в число
 
зн=Число(стр);
Если стр равно, например, "132", то все нормально.
А если, например, "132*", то имеем ошибку
"Преобразование значения к типу Число не может быть выполнено".
А мне бы надо, чтобы "132*" преобразовывалось в 0.
Как бы попроще сделать ?
(Посимвольный анализ строки на нечисловые символы очевиден, но неинтересен).

angro 25.09.2012 12:45

попытка
зн=Число(стр);
исключение
зн=0;
конецпопытки

Marlboro 25.09.2012 12:49

1-angro >Так и сделал временно, но поморщился.

roma n 25.09.2012 13:05

Неявное преобразование, например, при записи значения в типизированный реквизит формы. Не?

roma n 25.09.2012 13:06

3-roma n >Не... Кошерно: ПривестиЗначение()

Marlboro 25.09.2012 14:01

4-roma n >Это, насколько я понимаю, для реквизита на форме.
А мне надо просто значение строкового реквизита преобразовать в числовое.

roma n 25.09.2012 14:05

4-roma n > всё равно для чего - это метод описания типов.

Marlboro 25.09.2012 14:15

6-roma n >По-моему, мутновато получится.
Даже почитав синтакс-помощник, не вкурю как это может выглядеть в моем случае...

Чучундер 25.09.2012 14:18

если не использовать посимвольный анализ - придется что-нибудь другое, которое тоже потребует вычислительных ресурсов.
.
ну и вдобавок например
1123.45d-7
- вполне себе правильная символьная запись числа.

roma n 25.09.2012 15:10

7-Marlboro >
ОписаниеТипаЧисло = Новый ОписаниеТипов("Число");
МоёЧисло = ОписаниеТипаЧисло.ПривестиЗначение(МояСтрока);

Marlboro 25.09.2012 15:29

9-roma n >Ага.
А просто инициализировать переменную числовым значением (МоеЧисло=0) вместо Новый ОписаниеТипов("Число") прокатит ?

Marlboro 25.09.2012 15:30

8-Чучундер >В общем случае ты прав.
Но у меня задача проще - сравниваю артикул (строковый) с кодом (числовым). Если строковый артикул не "чисто число", то считаем, что он 0 и все.

angro 25.09.2012 15:39

(11) а зачем считаем что он ноль?

Marlboro 25.09.2012 15:52

12-angro >Да по логике задачи так проще, интересуют только "числовые" артикулы

roma n 25.09.2012 17:01

10-Marlboro >[quote=Marlboro;26993198]А просто инициализировать переменную числовым значением (МоеЧисло=0) вместо Новый ОписаниеТипов("Число") прокатит ?[/quote] Нет, тебе нужна переменная, инициализированная значением типа ОписаниеТипов. Иначе применить метод ПривестиЗначение() будет не к чему. Или пиши в переменную жёсткой типизации (см 3)


Текущее время: 12:17. Часовой пояс GMT +3.