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はマクロを定義することができる。【%MEND】

今回はマクロについて解説していきたいと思います。 %macro data1; data data1 ; id1=”1111″; id2=”1111″; id3=”1111″; output; id1= …

【SAS】SUMMARYは集計に便利

今回はSUMMARYについて解説します。 /*正常形*/ data data1; 契約番号=”AAAAAA”; 会社コード=”02″; 請求金額=4999; output; 契約番号=”AAAAAA” …

【SAS】||(!!)は文字列の連結ができる。【結合】

今回は||(!!)について解説します。 /* || */ data data1; Id1=1111; Char1=”AA AA”; output; Id1=2222; Char1=” BBBB”; o …

【SAS】%SYSFUNC関数はデータステップの外でも関数を使えるようにする。その2(%LETステートメント中の挙動)

今回は%SYSFUNC関数について、%LETステートメント中の挙動に着目して解説します。 /* substr */ %let a = substr(123456789, 2, 4); data dat …

【SAS】FIRST, LASTは重複を削除しユニーク化する

今回はfirst, lastについて解説します。 /*first last1*/ data data1; 番号=”1111″; 日付=”20210331″; output; 番号=”1111″; 日付 …