小数点以下の桁数を指定して、切り捨てを行なう方法はありますか?四捨五入はROUND関数で可能ですが、数値の切り 捨てをしたいと考えています。たとえば、「1.2345」を小数点以下第3位までで切り捨てて、「1.234」を求めるような方法です。
小数点以下の桁数を指定して切り捨てを行なう関数はサポートされていませんが、INT関数を利用して、任意の桁で切り 捨てした値を求められます。
例1:小数点以下第3位までで切り捨てる
DATA a;
INPUT a;
b=INT(a*(10 ** 3)) / 10 ** 3;
PUT b=; /* 値の確認 */
CARDS;
3.14159
-3.14159
;
RUN;
例1の結果
b=3.141 b=-3.141
例2:小数点以下第4位までで切り捨てる
DATA a;
INPUT a;
b=INT(a*(10 ** 4)) / 10 ** 4;
PUT b=; /* 値の確認 */
CARDS;
3.14159
-3.14159
;
RUN;
例2の結果
b=3.1415 b=-3.1415
なお、上記の手順をSASマクロにして使用することもできます。
/* マクロの定義 */
%MACRO d_omit(var,d);
%*** 小数の桁数を指定して切り捨て ***;
%*** var: 変数 ***;
%*** d: 桁数 ***;
INT(&var*(10 ** &d)) / 10 ** &d
%MEND d_omit;
DATA a;
a=3.14159;
b=%d_omit(a,3); /* マクロの呼び出し */
PUT b=; /* 値の確認 */
RUN;
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
コミュニティの基本的なガイドラインについてご説明します。まずは、こちらをご参照ください。
SAS Support CommunitiesのFAQはヘルプに記載されています。参照方法は、こちらからご確認ください。
Japan SAS Discussionページに質問や意見(メッセージ)を投稿/返信する方法を簡単にご説明します。