Форматы используются для преобразования значений в строки.Информаторы используются для преобразования строк в значения.Вы используете форматы с операторами PUT и FORMAT или функцией PUT ().Вы используете информацию с инструкциями INPUT и INFORMAT или функцией INPUT ().
Так что функции INPUT()
требуется символьная строка в качестве первого аргумента, но вы дали ей номер. Обратите внимание, что SAS поместит в журнал ЗАМЕЧАНИЕ о том, что ему нужно преобразовать числа в символы. SAS будет использовать формат BEST12.
для преобразования, поэтому ваше число 23451.23
станет строкой из 12 символов ' 23451.23'
.Затем, когда функция INPUT()
использует информацию COMMA10.2
, она читает только первые 10 символов, и вы пропускаете десятичные цифры.Обратите внимание, что ширина должна быть не только больше, но вы НЕ должны включать значение после десятичной точки в информативе.Если бы у вашего информата была еще меньшая ширина, вы бы пропустили десятичную точку, а SAS подразумевал бы ее (разделив целочисленное значение на 100).
Если вы хотите, чтобы ваши числа отображались определенным образом, тогда простоприкрепите желаемый формат к переменной.Вы можете просто добавить спецификацию формата в оператор PUT
.
put test= comma10.2 ;
Или присоединить формат к переменной, используя оператор FORMAT
.
format test comma10.2;
Если вы хотитепреобразуйте свой номер в строку символов, затем используйте функцию PUT()
char_result = put(test,comma10.2);
или PUTN()
.
char_result = putn(test,'comma10.2');