也許這是個不好的問題,但我無法找到任何地方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