|
Посчитать количество цифр в числе? | ☑ | ||
---|---|---|---|---|
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; КонецЕсли; Сообщить(Ответ); так попробовал пошло на ура |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |