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】ATTRIBによる形式変換とPUTによる形式変換の違いを解説

今回は、ATTRIBによる形式変換とPUTによる形式変換の違いを解説します。 結論:ATTRIBは入力項目が数値型、文字列型どちらにも対応できるが、    PUTは入力項目が数値型の時しか使えない。 …

【SAS】TITLEステートメントは「結果」にタイトルを付けられる

今回はTITLEステートメントについて解説します。 data data1; 番号=”AAAAAA”; コード=”02″; 金額=1999; output; 番号=”AAAAAA”; コード=”05″; …

【SAS】CATX関数は区切り文字を設定し、変数を結合することができる。

今回はCATX関数について解説します。 /* , */ data data1; Id1=1111; Id2=1111; Id3=1111; output; Id1=2222; Id2=2222; Id …

【SAS】TODAY()とDATE()はどちらもSAS日付値を取得する。

以下の2記事でtoday()を使ってきました。 【SAS】PUT+DATE,YYMMDDはSAS日付値をフォーマットを変換して表示する 【SAS】YYMMDDの可能性を考える(表示できる日付形式はどこ …

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

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