Перевести строку '250 млн' в число
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 | * Восстановление чисел из сумм, записанных прописью, а также - из сумм, записанных с разделителями разрядов. *(Вопрос) Имеется строковая переменная, содержащая записи типа: 100 млрд 250 млн 7 млрд Необходима преобразовать её в числовую переменную. *Кроме того, есть строковые переменные, где числа записаны с запятой в качестве разделителя разрядов. Их тоже надо преобразовать в числа. *(Ответ) Размещён в SPSSX-List 02.04.2003, автор: Raynald Levesque. DATA LIST FIXED /revenue 1-14(A) empl 15-20(A). BEGIN DATA 100 млрд 10,500 250 млн 500 7 млрд 7,000 END DATA. COMPUTE #pos=INDEX(UPCASE(revenue),'МЛРД'). IF #pos>0 revenue2=NUMBER(SUBSTR(revenue,1,#pos - 1),F8)*1000000000. COMPUTE #pos=INDEX(UPCASE(revenue),'МЛН'). IF #pos>0 revenue2=NUMBER(SUBSTR(UPCASE(revenue),1,#pos - 1),F8)*1000000. COMPUTE empl2=NUMBER(empl,COMMA8). EXECUTE. * Примеч.: если сокращения разрядов "млрд" или "млн" записаны иначе, переменная revenu2 будет содержать пропуски. Проверьте такие наблюдения. |
Related pages
...