|
Строковая длина числа | ☑ | ||
---|---|---|---|---|
0
Обфускация
01.08.18
✎
13:49
|
У меня есть функция
знакидо=стрзаменить(строка(цел(число(элементы.ПоказанияЭлектрическойЭнергии.ТекущиеДанные.ВидЭнергииАктивнаяПрием)))," ",""); если число "222", то стоковая длина значения этой функции = 3 но если число "2222", то строковая длина 5, поскольку число преобразуется в "2 222" как правильно посчитать? |
|||
1
Волшебник
01.08.18
✎
13:51
|
||||
2
Cyberhawk
01.08.18
✎
13:52
|
Отформатируй число
|
|||
3
Cyberhawk
01.08.18
✎
13:52
|
ЧГ=0
|
|||
4
rudnitskij
01.08.18
✎
13:52
|
можно еще проверять код символа в числовой строке, если в пределах от 48 до 57 - значит символ является числом, и искомая длина есть число таких символов.
Но это для совсем уж извращенцев) (1) лучше конечно |
|||
5
Ненавижу 1С
гуру
01.08.18
✎
13:54
|
просто интересно какой тип имеет значение элементы.ПоказанияЭлектрическойЭнергии.ТекущиеДанные.ВидЭнергииАктивнаяПрием
|
|||
6
novichok79
01.08.18
✎
13:58
|
СтрДлина(Формат(ТвоеЧисло, "ЧН=;ЧГ=0"))
|
|||
7
novichok79
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,"," ")))
|
|||
14
1CIlya
01.08.18
✎
14:17
|
(11) +1 Логарифм, и не мучайтесь.
|
|||
15
novichok79
01.08.18
✎
14:17
|
ЧислоСтрокой = Формат(Объект.Число, "ЧРД=,; ЧН=; ЧГ=0");
Пока Лев(ЧислоСтрокой, 1) = "0" Или Лев(ЧислоСтрокой, 1) = "," Цикл ЭтоРазделитель = (Лев(ЧислоСтрокой, 1) = ","); ЧислоСтрокой = Сред(ЧислоСтрокой, 2); Если ЭтоРазделитель Тогда Прервать; КонецЕсли; КонецЦикла; ОбщегоНазначенияКлиентСервер.СообщитьПользователю( СтрДлина(ЧислоСтрокой)); |
|||
16
novichok79
01.08.18
✎
14:18
|
с отрицательными не разобрались еще
|
|||
17
s03
01.08.18
✎
14:19
|
(16) предлагаю разбираться последовательно, сначала с целыми отрицательными, а затем с дробными
|
|||
18
singlych
01.08.18
✎
14:45
|
СтрДлина(СтрЗаменить(Формат(ТутЧисло * pow(10, (ТутЧисло < 1 И ТутЧисло > -1)), "ЧРД=-; ЧРГ=-; ЧН=-"), "-", ""))
|
|||
19
novichok79
01.08.18
✎
15:05
|
(17) я думаю что тредстартёр сам разберется уже. примеров ей накидали.
|
|||
20
Лефмихалыч
01.08.18
✎
17:34
|
(12) тоже мне проблема
|
|||
21
Ненавижу 1С
гуру
02.08.18
✎
08:53
|
Справедливости ради Цел(Log10(10))+1
|
|||
22
МихаилМ
02.08.18
✎
09:11
|
+(21)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |