BookmarkSubscribeRSS Feed

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

Started ‎03-05-2018 by
Modified ‎04-19-2018 by
Views 3,899

質問

小数点以下の桁数を指定して、切り捨てを行なう方法はありますか?四捨五入は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 2024

Innovate_SAS_Blue.png

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. 

Register now!

Article Labels
Article Tags

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


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

詳細を読む

 

SAS Support CommunitiesのFAQ


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

詳細を読む

 

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


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

詳細を読む