Имя: Пароль:
1C
1С v8
Посчитать количество цифр в числе?
0 ittaxi
 
28.07.17
14:21
Число 45 879
как посчитать количество цифр?
в данном примере должно получится 5 цифр.
1 catena
 
28.07.17
14:22
различных?
2 ittaxi
 
28.07.17
14:23
да просто количество (1)
3 Вафель
 
28.07.17
14:23
взять 10 логарифм
4 Ёпрст
 
28.07.17
14:24
Можно еще СтрДлина
5 ok_sys
 
28.07.17
14:25
как вариант преобразовать в строку и посчитать посимвольно
6 lera01
 
28.07.17
14:25
СтрДлина(Формат(ТвоеЧисло,"ЧРГ=''; ЧГ=0"))
7 Dvoe4nik
 
28.07.17
14:26
(0) строкачисла=Стрзаменить(строка(Число));//"123456"
колвоЦифр=0;
ДЛя каждого символ из строкачисла цикл
Если символ="0" тогда//(или 2-9)
колвоЦифр=колвоЦифр+1;
КонецЕсли;
КонецЦикла;
8 Dvoe4nik
 
28.07.17
14:27
(7) Стрзаменить(строка(Число)," ","")*
9 ittaxi
 
28.07.17
14:34
(8)
строкачисла=Стрзаменить(строка(Число)," ","");//"123456"

        колвоЦифр=0;
        ДЛя каждого символ из строкачисла цикл
        Если символ="0" тогда//(или 2-9)

        колвоЦифр=колвоЦифр+1;
        КонецЕсли;
        КонецЦикла;
        
        Сообщить(колвоЦифр);

Форма.Форма.Форма(115)}: Итератор для значения не определен
        ДЛя каждого символ из строкачисла цикл
10 Dvoe4nik
 
28.07.17
14:37
(9) ну для символ=1 по СтрДлина(строкачисла) цикл
Если сред(строкачисла,символ,1)="0" тогда//(или 2-9)
11 ittaxi
 
28.07.17
14:37
реквизит значений тип Число
12 Dvoe4nik
 
28.07.17
14:40
(11) и да
Если сред(строкачисла,символ,1)="0" или сред(строкачисла,символ,1)="1"или сред(строкачисла,символ,1)="2"...или сред(строкачисла,символ,1)="9"тогда
колвоцыфр=колвоцифр+1;
КонецЕсли;
13 catena
 
28.07.17
14:40
в (6) решение чем не устраивает?
14 Вафель
 
28.07.17
14:41
(13) Потому что это конкурс )))
15 Dvoe4nik
 
28.07.17
14:41
(13) не прочел)))))))
16 catena
 
28.07.17
14:42
(14)У кого длиннее?
17 Dvoe4nik
 
28.07.17
14:43
(16) а Фдрук там кроме цифор исчо чето написано?))
18 catena
 
28.07.17
14:45
(17)ТС утверждает, что там число
19 ittaxi
 
28.07.17
14:46
(12)
строкачисла=Стрзаменить(строка(Число)," ","");//"123456"

        колвоЦифр=0;
         для символ=1 по СтрДлина(строкачисла) цикл
                
        Если сред(строкачисла,символ,1)="0" или сред(строкачисла,символ,1)="1"
            или сред(строкачисла,символ,1)="2" или сред(строкачисла,символ,1)="3"
            или сред(строкачисла,символ,1)="4" или сред(строкачисла,символ,1)="5"
            или сред(строкачисла,символ,1)="6" или сред(строкачисла,символ,1)="7"
            или сред(строкачисла,символ,1)="8" или сред(строкачисла,символ,1)="9" тогда
            колвоЦифр=колвоЦифр+1;
        КонецЕсли;
        
        КонецЦикла;
        
        Сообщить(колвоЦифр);

работает спасибо
20 Dvoe4nik
 
28.07.17
14:46
(19) 6 тоже отработает, если у тя там число стоит причем кода меньше
21 catena
 
28.07.17
14:47
сред(строкачисла,символ,1)>="0" и  сред(строкачисла,символ,1)<="9"
22 ittaxi
 
28.07.17
14:47
а есть метод по короче
23 Lama12
 
28.07.17
14:47
Здесь пятничный стеб или все что после (3) серьезно?
24 WhiteDragon93
 
28.07.17
14:47
КоличествоЦифр = СтрДлина(СтрЗаменить(Строка(Формат(НашаПеременная, "ЧРД=; ЧГ=0")),",",""));
25 Dvoe4nik
 
28.07.17
14:48
(22) >(6)
26 catena
 
28.07.17
14:49
(25)У него, похоже, посты с (6) не отображаются...
27 Dvoe4nik
 
28.07.17
14:49
(26) )))))))))))))))))))))))))))))))
28 Ненавижу 1С
 
гуру
28.07.17
14:50
КоличествоЦифр =Цел(Log10(ТвоеЧисло))+1;
29 ittaxi
 
28.07.17
14:51
(26) все отображает попробую спасибо а можно как то типа остатком от деления посчитать.
30 Ненавижу 1С
 
гуру
28.07.17
14:51
(29) см (28)
31 catena
 
28.07.17
14:52
(29)Только если оно у тебя целое же.
32 patapum
 
28.07.17
14:53
а в числе 123,45 сколько цифр должно вернуть?
33 Ёпрст
 
28.07.17
14:53
(28) вот только, с нулём и с отрицательными числами, не покатит
34 ittaxi
 
28.07.17
14:54
(28) Огромное Спасибо Человек.
35 Ёпрст
 
28.07.17
14:55
(34) а че, (3) не осилил ?
36 ittaxi
 
28.07.17
14:56
всем спасибо
особенно (23)
(33) придумаю ченибуть
37 Lama12
 
28.07.17
14:56
(32) (33) В (0) приведен пример с целым положительным числом. Если уж на то пошло, давайте определяться с каким множеством работаем, а то 7/3 тоже число и "Pi" число, и "e".
38 Ёпрст
 
28.07.17
14:58
если для любых чисел (дробных, отрицательных), то например, такой примитив

КолЦиферок=0;
Для к = 1 по СтрДлина(строка(ТвоёЧисло)) Цикл
  Если Найти("01923456789",Сред(строка(ТвоёЧисло),к,1))>0 тогда
     КолЦиферок=КолЦиферок+1;
  КонецЕсли;
КонецЦикла;
39 ittaxi
 
28.07.17
15:00
(38) только целые числа

Если Число <> 0 Тогда
            КоличествоЦифр =Цел(Log10(Число))+1;
        КонецЕсли;
        Сообщить(КоличествоЦифр);


Вроде работает и четыре строчки
40 ittaxi
 
28.07.17
15:00
спасибо всем
41 Ёпрст
 
28.07.17
15:01
(39) целые числа могут быть отрицательными. ну и сунь отрицательное число в логарифм
42 Йохохо
 
28.07.17
15:02
Ответ = СтрДлина(Формат(Строка(Число), "ЧГ="));
Если Число < 0 Тогда Ответ = Ответ -1; КонецЕсли;
43 dezss
 
28.07.17
15:05
(42) А если дробное, то еще -1.
44 dezss
 
28.07.17
15:06
(43) а если в научной/инженерной записи, то еще -1.
45 dezss
 
28.07.17
15:06
(44) хотя нет, тут будет несколько сложнее...надо ж еще прибавить то, что после Е
46 ittaxi
 
28.07.17
15:10
(42)
Ответ = СтрДлина(Формат(Строка(Число), "ЧГ="));
            Если Число < 0 Тогда Ответ = Ответ -1; КонецЕсли;
         Сообщить(Ответ);
круто но дает в 5  6 симолов   пробел попадает надо вычесть его

Спасибо
47 ittaxi
 
28.07.17
15:15
(42)
Ответ = СтрДлина(Формат(Число(Число), "ЧГ="));
            Если Число < 0 Тогда Ответ = Ответ -1; КонецЕсли;
         Сообщить(Ответ);

так попробовал пошло на ура