今回は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になる。