Ошибка преобразования текста в числовой формат F12.2 в SAS - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь преобразовать текстовую переменную в числовую, а затем обратно в текст, чтобы округлить ее и сохранить конечные и начальные нули, поэтому, если мое число равно 0,501, я хочу отобразить 0,50 в SAS.

У меня естьпридумать этот фрагмент кода, который работает, когда текстовая строка длиннее 3 цифр +, но не работает, когда ее всего 1 цифра

test = strip(put(round(input('5',f12.2),0.01),f12.2));
test_2 = input('5',f12.2)

Может кто-нибудь объяснить, почему вместо этого я получаю 0,055,00 в приведенном выше примере?

1 Ответ

0 голосов
/ 17 октября 2018

Ваша основная проблема - использовать F12.2 в качестве ИНФОРМАТА.Это 2 говорит, что разделите значение на 1E2, если значение не имеет явного десятичного числа.

42   data _null_;
43      length have $12;
44      do have = '5','5.001','500.01';
45         new  = put(round(input(have,f12.),.01),F12.2-l);
46         put '*' new $12. '*' +3 have=;
47         end;
48      run;

*5.00        *   have=5
*5.00        *   have=5.001
*500.01      *   have=500.01
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...