Вход | Регистрация



Строковая длина числа

Строковая длина числа
Я
   Обфускация
 
01.08.18 - 13:49
У меня есть функция
знакидо=стрзаменить(строка(цел(число(элементы.ПоказанияЭлектрическойЭнергии.ТекущиеДанные.ВидЭнергииАктивнаяПрием)))," ","");

если число "222", то стоковая длина значения этой функции = 3
но если число "2222", то строковая длина 5, поскольку число преобразуется в "2 222"

как правильно посчитать?
 
 
   Волшебник
 
1 - 01.08.18 - 13:51
   Cyberhawk
 
2 - 01.08.18 - 13:52
Отформатируй число
   Cyberhawk
 
3 - 01.08.18 - 13:52
ЧГ=0
   rudnitskij
 
4 - 01.08.18 - 13:52
можно еще проверять код символа в числовой строке, если в пределах от 48 до 57 - значит символ является числом, и искомая длина есть число таких символов.
Но это для совсем уж извращенцев) (1) лучше конечно
   Ненавижу 1С
 
5 - 01.08.18 - 13:54
просто интересно какой тип имеет значение элементы.ПоказанияЭлектрическойЭнергии.ТекущиеДанные.ВидЭнергииАктивнаяПрием
   novichok79
 
6 - 01.08.18 - 13:58
СтрДлина(Формат(ТвоеЧисло, "ЧН=;ЧГ=0"))
   novichok79
 
7 - 01.08.18 - 13:59
а вот это 

знакидо=стрзаменить(строка(цел(число(элементы.ПоказанияЭлектрическойЭнергии.ТекущиеДанные.ВидЭнергииАктивнаяПрием)))," ","");

та еще дичь.
   Малыш Джон
 
8 - 01.08.18 - 14:03
(7) да ладно, норм)
Я бы ещё добавил:
СтрЗаменить( вотэтовсе , Символ(160),"")
и вообще - полный набор будет.
   Обфускация
 
9 - 01.08.18 - 14:03
Про целое понятно.
У меня бывает 0,222 и длина должна быть 3, а не 5. Как это рассчитать?
   Малыш Джон
 
10 - 01.08.18 - 14:04
тогда еще
?(Лев(вотэтовсе, 2) = "0,", Сред(вотэтовсе,3), вотэтовсе)
 
 Рекламное место пустует
   Лефмихалыч
 
11 - 01.08.18 - 14:05
(0) десятичный логарифм от числа плюс один
   Михаил Козлов
 
12 - 01.08.18 - 14:07
(11) Для целых.
   Малыш Джон
 
13 - 01.08.18 - 14:12
СтрДлина(СокрЛ(СтрЗаменить(Формат(НужноеЧисло,"ЧГ=0"),"0,","  ")))
   1CIlya
 
14 - 01.08.18 - 14:17
(11) +1 Логарифм, и не мучайтесь.
   novichok79
 
15 - 01.08.18 - 14:17
ЧислоСтрокой = Формат(Объект.Число, "ЧРД=,; ЧН=; ЧГ=0");
    
    Пока Лев(ЧислоСтрокой, 1) = "0" 
        Или Лев(ЧислоСтрокой, 1) = "," Цикл 
        
        ЭтоРазделитель = (Лев(ЧислоСтрокой, 1) = ",");

        ЧислоСтрокой = Сред(ЧислоСтрокой, 2);
        
        Если ЭтоРазделитель Тогда Прервать;
        КонецЕсли;

    КонецЦикла;
    
    ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
    СтрДлина(ЧислоСтрокой));
   novichok79
 
16 - 01.08.18 - 14:18
с отрицательными не разобрались еще
   s03
 
17 - 01.08.18 - 14:19
(16) предлагаю разбираться последовательно, сначала с целыми отрицательными, а затем с дробными
   singlych
 
18 - 01.08.18 - 14:45
СтрДлина(СтрЗаменить(Формат(ТутЧисло * pow(10, (ТутЧисло < 1 И ТутЧисло > -1)),  "ЧРД=-; ЧРГ=-; ЧН=-"), "-", ""))
   novichok79
 
19 - 01.08.18 - 15:05
(17) я думаю что тредстартёр сам разберется уже. примеров ей накидали.
   Лефмихалыч
 
20 - 01.08.18 - 17:34
(12) тоже мне проблема
   Ненавижу 1С
 
21 - 02.08.18 - 08:53
Справедливости ради Цел(Log10(10))+1
   МихаилМ
 
22 - 02.08.18 - 09:11
+(21)


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует