2006年12月12日火曜日

小数点以下を指定の桁数で切り捨てる方法


例えば、0.123という値を小数点第2位で切り捨てて0.12に変換したい場合等です。



小数点以下を単純に切り捨てるのであればINT関数等で処理できます。


また、指定の桁数で四捨五入するのであればROUND関数で処理できます。



SASでは、小数点以下を指定の桁数で切り捨てるような関数はありません。


そこで、下記のように工夫します。




* データ作成 ;


data temp ;


 x = 0.123 ;


 y = 0.127 ;


 z = 0.1 ;


run ;


* 切り捨て処理 ;


data temp2 ;


 set temp ;


 x2 = int(x * 100) / 100 ;


 y2 = int(y * 100) / 100 ;


 z2 = int(z * 100) / 100 ;


 put x2 = y2 = z2 = ;


run ;



お分かりでしょうか?


まず、値を100で乗算したものをINT関数で小数点以下を切り捨てます。


それを元の桁に戻すために100で除算します。



小数点第3位で切り捨てる場合は、1000で乗算し1000で除算します。



他の言語でも使われる定石的な方法です。


0 件のコメント:

コメントを投稿

ツイート数からみる"バーチャルYouTuber"ブーム

今や YouTuber の話題の半分を占めるほどのクチコミ数に 当社が提供するソーシャルビッグデータ検索ツールの「 beInsight (ビーインサイト)」を使って、話題の「バーチャル YouTuber 」について調べてみました。 「バーチャル YouTuber...