1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
* Тема: извлечение первой / первых двух цифр из числа.
* Ключевые слова: число, знак, разряд, преобразование, извлечение, цифра.
* Опубликован: 16.06.2008.
* Автор: Raynald Levesque.
* Перевод: А. Балабанов.

* (Вопрос) Имеется числовая переменная, содержащая числа из трёх и более знаков.
* Требуется извлечь в отдельную переменную первую цифру, если число состоит из 3 цифр, 
 и первые 2 цифры в ином случае.

* (Ответ) Размещён в SPSSX-L, автор: Raynald Levesque, 20.11.2003.

* Пример данных.
DATA LIST LIST /asoc.
BEGIN DATA
813
1314
99999
888888
7777777
45321547
9999999999
END DATA.
VARIABLE WIDTH asoc(10).

* Решение.
DO IF asoc<10000.
- COMPUTE asoc2=TRUNC(asoc/100).
ELSE.
- COMPUTE #digits=TRUNC(LG10(asoc)).
- COMPUTE asoc2=TRUNC(asoc/(10**(#digits-1))).
END IF.
EXECUTE.