也许这是个不好的问题,但我无法找到任何地方SAS中数值类型变量的下限和上限。我发现this论文背后的所有理论,并在一些论坛上讨论说上限是1E200,但我确信它是(操作)系统架构的依赖。尽管如此,我还是希望能有更正式的东西,比如可以用来比较MIN_NUMERIC_VALUE或MAX_NUMERIC_VALUE,以避免溢出。任何相关信息,表示赞赏。 MariusSAS中数值变量的上下限
2
A
回答
3
CONSTANT
函数为您提供这样的信息。
%put %sysfunc(constant(big));
对于windows系统,大约是1.8e308。
作为背景,在窗口编号是基于存储号码像这样:
1 bit : sign
10 bits : exponent (the result is 2 to the power of this times the mantissa;
this is like the 13 in 1.3425e13 in scientific notation)
53 bits : mantissa (this would be the 'decimal' portion, so the 1.3425 in the above.
A fraction of 2, and strictly less than 2.)
的指数可以存储高达2^10-1,所以仅由指数部分表示的实际数量是2 ^(2^10-1)倍尾数。尾数可以小于2,因此任何给定指数的最大数是2 ^(指数)* 2 - 1。
因此,您可以存储2 ^(2^10-1)* 2-1,或2^1024-1,几乎是1.8e308。
0
可以存储在Windows的SAS变量中的最大整数是9,007,199,254,740,992,使用长度= 8。 Here is a table of precission for different lengths on Windows
+0
嗨。感谢你的回答。我发现该表与第2页上的[here](http://www.lexjansen.com/nesug/nesug02/at/at002.pdf)中的表相同。但是,这与更精确的整数限制有关代表,而不是法定数值的界限。我发现它是依赖于系统的,但我仍然期望将限制设置为**和**保存在某个常量中。 – Marius 2014-10-22 10:41:41
相关问题
- 1. 变量的SAS最大值
- 2. SAS:在PROC EXPORT中限制变量
- 3. 修改SAS中的宏变量的值
- 4. 下限/上限误差变量AMPL
- 5. SAS中宏的参数可变数量?
- 6. 将数值变量转换为SAS时间变量
- 7. 如何在SAS中的proc转置中保留数值变量?
- 8. SAS中的虚拟变量
- 9. SAS中的虚拟变量
- 10. SAS中的变量名
- 11. SAS中的宏变量R
- 12. SAS中的变量分类
- 13. 选择变量的均值(SAS)
- 14. SAS跨多个变量的比较值
- 15. SAS宏变量的变化
- 16. 将分类字符变量转换为SAS中的数字值
- 17. SAS中有多个值的计数变量
- 18. 如何上限或下降变量?
- 19. 上下文变量中的变量
- 20. SAS新变量基于新变量的优先值
- 21. SAS:两个变量的平均值,中位数,最大值和百分位数
- 22. 转换变量类型后,所有观察值都下降SAS
- 23. 将SAS数据列变成宏变量?
- 24. 如何输出SAS宏变量值
- 25. 使用字段值作为SAS变量
- 26. 保持基于日期变量值SAS
- 27. Proc SQL,SAS截断变量值
- 28. 通过重复值填充SAS变量
- 29. 如何计算变量值在SAS
- 30. SAS将哪个值分配给变量?
嘿乔!感谢您的答复和详细程度。我已经试图从文档中理解,但是我还没有进行太多的计算:]非常感谢。 – Marius 2014-10-23 08:11:41
不错。 CONSTANT函数接受一个参数“EXACTINT”,告诉你可以存储在变量中的最大整数。看到这个例子:data _null_; do i = 3 to 8; a = CONSTANT('EXACTINT',i); put i = a = 17.0; end; run; – 2014-10-23 11:38:43