ROUND SAS

【SAS】ROUNDは四捨五入して数値を丸める

投稿日:2021年10月30日 更新日:

今回はROUNDについて解説します。


/* 正常形 */
data work.data1;
  _100 = round(1234.56789, 100);
  _10  = round(1234.56789, 10);
  _1   = round(1234.56789, 1);
  _。1  = round(1234.56789, .1);
  _。01 = round(1234.56789, .01);
  _。001= round(1234.56789, .001);
run;

  • 第一引数(1234.56789)を第二引数(100)に従って四捨五入する。
  • _100なら10の位に設定されている値で四捨五入を行い、100の位の値が決まる。
  • _。001なら0.0001の位に設定されている値で四捨五入を行い、0.001の位の値が決まる。

/* 桁指定を2にしてみたら */
data work.data1;
  _200 = round(1234.56789, 200);
  _20  = round(1234.56789, 20);
  _2   = round(1234.56789, 2);
  _。2  = round(1234.56789, .2);
  _。02 = round(1234.56789, .02);
  _。002= round(1234.56789, .002);
run;

  • 第一引数(1234.56789)を第二引数(200)に従って四捨五入する。(?)
  • 200や.002にすると計算結果が変わるみたいです。

/* 桁指定を無くしたら */
data work.data1;
  _1 = round(1234.56789);
run;

  • 第一引数(1234.56789)を四捨五入する。
  • 第二引数が省略されているときは0.1の位の値で四捨五入を行い、1の位の値が決まる。
  • デフォルトだと第二引数「1」として扱われる。

/* 数値を文字型にしたら */
data work.data1;
  _100  = round("1234.56789", 100);
  _10   = round("1234.56789", 10);
  _1    = round("1234.56789", 1);
  _。1  = round("1234.56789", .1);
  _。01 = round("1234.56789", .01);
  _。001= round("1234.56789", .001);
run;

  • 第一引数(”1234.56789″)を第二引数(100)に従って四捨五入する。
  • _100なら10の位に設定されている値で四捨五入を行い、100の位の値が決まる。
  • _。001なら0.0001の位に設定されている値で四捨五入を行い、0.001の位の値が決まる。
  • 数値を文字列にしても、文法は通り、計算結果も等しい。

/* 数値を文字型にしたら、桁指定を無くしたら */
data work.data1;
  _1 = round("1234.56789");
run;

  • 第一引数(”1234.56789″)を四捨五入する。
  • 第二引数が省略されているときは0.1の位の値で四捨五入を行い、1の位の値が決まる。
  • デフォルトだと第二引数「1」として扱われる。
  • 数値を文字列にしても、文法は通り、計算結果も等しい。

/* 桁指定を文字型にしたら */
data work.data1;
  _100 = round(1234.56789, "100");
  _10  = round(1234.56789, "10");
  _1   = round(1234.56789, "1");
  _。1  = round(1234.56789, ".1");
  _。01 = round(1234.56789, ".01");
  _。001= round(1234.56789, ".001");
run;

  • 第一引数(1234.56789)を第二引数(”100″)に従って四捨五入する。
  • _100なら10の位に設定されている値で四捨五入を行い、100の位の値が決まる。
  • _。001なら0.0001の位に設定されている値で四捨五入を行い、0.001の位の値が決まる。
  • 数値を文字列にしても、文法は通り、計算結果も等しい。

/* 桁指定を0にしたら */
data work.data1;
  _0 = round(1234.56789, 0);
run;

  • 第一引数(1234.56789)を四捨五入する。
  • 第二引数が0だと、計算できないため、NULLになる。

-ROUND, SAS

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

【SAS】PUTLOGステートメントは文字列をログに出力する。

今回はPUTLOGについて解説します。 /* putlog_1 */ data _null_; putlog ‘2022/03/26’; run; putlogにより、ログに文字列を出力できる。%pu …

【SAS】FORMATプロシージャはフォーマットルールを定義し、値を書き換える。その2

今回もFORMATプロシージャについて解説します。 前回は値の範囲によって、定義されたフォーマットルールに従い、値を書き換えるという内容でした。 【SAS】FORMATプロシージャはフォーマットルール …

【SAS】YYYY-MM表記にする方法【SUBSTR】【||】

今回はYYYYMMDD表記の年月日をYYYY-MM表記にしたいと思います。 結論:SUBSTRと||を使います。 (SUBSTR:【SAS】SUBSTR関数は文字列から指定した文字数分切り取る。 | …

WORKライブラリをLIBNAMEで自動的に割り当てる方法を考察【PATHNAME】【%SYSFUNC】

今回はWORKライブラリをLIBNAMEで自動的に割り当てる方法を考察していきたいと思います。 workライブラリはlibnameを使ってlib_1のようにライブラリ名を割り当てる事ができます。 /* …

【SAS】PRINTプロシージャは入力データセットの中身を結果に表示する【obs=】

今回はPRINTプロシージャについて解説します。 /* print */ data data1; 番号=”AAAAAA”; コード=”02″; 金額=1999; output; 番号=”AAAAAA” …