小数点以下の桁数を指定して、切り捨てを行なう方法はありますか?四捨五入は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 open! SAS is returning to Vegas for an AI and analytics experience like no other! Whether you're an executive, manager, end user or SAS partner, SAS Innovate is designed for everyone on your team. Register for just $495 by 12/31/2023.
If you are interested in speaking, there is still time to submit a session idea. More details are posted on the website.
コミュニティの基本的なガイドラインについてご説明します。まずは、こちらをご参照ください。
SAS Support CommunitiesのFAQはヘルプに記載されています。参照方法は、こちらからご確認ください。
Japan SAS Discussionページに質問や意見(メッセージ)を投稿/返信する方法を簡単にご説明します。