SAS хранит все числа как 8-байтовые числа с плавающей запятой. Таким образом, вы не можете представлять целые числа с более чем 15 цифрами точно. Чтобы увидеть максимальное целое число, которое может быть представлено в точности, используйте функцию CONSTANT ().
data _null_;
x=constant('exactint');
put x 16. +1 x comma21.;
run;
Результат:
9007199254740992 9,007,199,254,740,992
Так что, если у вас есть какие-либо значения идентификатора больше, чем 9,007,199,254,740,992, то вы не сможетехраните их как числа в SAS.
Почему вы храните значения идентификаторов как числа? Нет необходимости выполнять арифметику для значений идентификаторов.