BookmarkSubscribeRSS Feed

小数点以下の桁数を指定して切り捨てを行なう方法

Started ‎03-05-2018 by
Modified ‎04-19-2018 by
Views 4,680

質問

小数点以下の桁数を指定して、切り捨てを行なう方法はありますか?四捨五入は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;
Version history
Last update:
‎04-19-2018 09:00 PM
Updated by:
Contributors

SAS Innovate 2025: Register Now

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!

Article Labels
Article Tags

SAS Support Communitiesのユーザーガイドライン


コミュニティの基本的なガイドラインについてご説明します。まずは、こちらをご参照ください。

詳細を読む

 

SAS Support CommunitiesのFAQ


SAS Support CommunitiesのFAQはヘルプに記載されています。参照方法は、こちらからご確認ください。

詳細を読む

 

質問や意見の投稿と返信方法について


Japan SAS Discussionページに質問や意見(メッセージ)を投稿/返信する方法を簡単にご説明します。

詳細を読む