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】%MACROはマクロを定義することができる。その5 =を使うと数を渡す引数,数を受け取る引数を指定できる。【%MEND】

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

【SAS】SASで良く使うテクニック。その4 「参照元のトレース」~データセットの差分がある箇所を探すのに便利~【Excel】

今回はSASで良く使うテクニックということで、データセットの差分がある箇所を探すときは「参照元のトレース」が役に立つ理由を解説していきます。 (参考:【SAS】SASで良く使うテクニック。その1 Ex …

【SAS】SAS Studioのフィルター機能の使い方を解説 その2 ~数値型~

今回もSAS Studioのフィルター機能について解説します。(前回:【SAS】SAS Studioのフィルター機能の使い方を解説 その1 ~文字型~ | ビジネスイッチ (how-to-busine …

【SAS】COMPRESS関数は文字列の空白を削除し、詰める。(COMPRESS関数 その1)

今回はCOMPRESS関数について解説します。 /* compress */ data data1; Id1=1111; Char1=”AA AA”; output; Id1=2222; Char1= …

【SAS】VERIFYは引数の文字を含まない最初の位置を返す

今回はVERIFYについて解説します。 /*正常形*/ data data1; Id1=”AAAA”; output; Id1=”ABAB”; output; Id1=”ABCD”; output; …