数値変数の長さを変えてみました。以下のリンクを参照しました
http://support.sas.com/documentation/cdl/en/hostwin/63285/HTML/default/viewer.htm#numvar.htm
ここで、長さ3で表すことができる最大の整数は8192です。
以下のサンプルプログラムを試してみました。長さ3の変数numを宣言し、8192を超えるさまざまな値を格納しようとしました。
data numeric_values;
input num;
length num 3;
datalines;
8194
8192
8193
9000
10000
10008
;
run;
このプログラムを実行してもエラーは発生しません。
データセットnumeric_valuesは、すべての値で作成されました8194 8192 8192 9000 10000 10008
数値データ型の長さの概念を誰かに説明してもらえますか?私の理解が間違っている場合は私を訂正してください
SASは数値を浮動小数点として格納します。長さ3で安全に保持できる最大の整数は8192ですが、より大きな値を格納することもでき、精度が低下します。あなたの例では、8193が実際に8192に破損していることがわかります。他の例の数値は偶数であり、より高いしきい値まで安全ですが、例として10009を選択した場合は、破損していることがわかります。あまりにも、10008に。
これが発生したときにSASが警告やメモを提供しないのは興味深いことです。浮動小数点表記のコツを意識するのはプログラマーの負担だと彼らは判断したと思います。
[DWalの重要なコメントに照らして、特に整数を参照するように回答を編集しました。]
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加