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】INPUTステートメントは再帰的に型変換ができない。

今回はINPUTステートメントの再帰的な型変換について解説します。 (なお、通常のINPUT型変換の使い方は以下の記事で解説しています。⇒【SAS】INPUTは文字型を数値型に変換する) /*再帰的型 …

【SAS】STOPステートメントは処理を切り上げる。

今回はSTOPステートメントについて解説していきます。 /* stop1 */ data data1; id1=”1111″; id2=”1111″; id3=”1111″; output; stop …

【SAS】CONTENTSプロシージャはデータセットに関する情報を表示する。

今回はCONTENTSプロシージャについて解説します。  /* data1 */ data data1; Id1=1111; Id2=1111; Id3=1111; output; Id1= …

【SAS】%MACROはマクロを定義することができる。その5 =を使うと数を渡す引数,数を受け取る引数を指定できる。【%MEND】

今回はマクロ引数に「=」を用いる方法について解説していきたいと思います。(事前に読んでおきたい記事:【SAS】%MACROはマクロを定義することができる。その3 マクロには引数を設定できる。【%MEN …

【SAS】SASで日付を扱う(年月日)【”d】 【YEAR()】【MONTH()】【DAY()】【MDY()】

今回は日付を用いた様々な操作について解説します。  /*”d*/ data data1; Id1 = ’03jan2022’d; run; ’03jan2022’d …