SAS中文论坛
标题:
关于%eval
[打印本页]
作者:
shiyiming
时间:
2012-5-12 21:10
标题:
关于%eval
%let numer=2;
%let demon=8;
%put value=%eval(&numer/&denom*&denom);
%put value=%eval(&denom*&numer/&denom);
在log的结果为:value=0
value=2
哪位能解释一下,为什么是这个结果,我也知道%eval的意思,只是这里不懂。
作者:
shiyiming
时间:
2012-5-12 21:21
标题:
Re: 关于%eval
上面的有个错误。是下面这样的。
%let numer=2;
%let denom=8;
%put value=%eval(&numer/&denom*&denom);
%put value=%eval(&denom*&numer/&denom);
在log的结果为:value=0
value=2
哪位能解释一下,为什么是这个结果,我也知道%eval的意思,只是这里不懂。
作者:
shiyiming
时间:
2012-5-12 22:47
标题:
Re: 关于%eval
那你觉得应该是什么结果符合你的理解呢?为什么?
作者:
shiyiming
时间:
2012-5-13 16:19
标题:
Re: 关于%eval
刚开始的想法是:%eval函数里面又乘又除的,不都抵消了吗?我的意思是约分了。
后来我仔细一想,可能不能这样来,应得按照它的顺序来计算。
这样,0.25*8的结果只取整数部分就是0,16/8得2。是这样吧。
<!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
作者:
shiyiming
时间:
2012-5-13 16:36
标题:
Re: 关于%eval
看来你是没仔细看SAS HELP。请参考我的博文《SAS宏表达式计算%EVAL与%SYSEVALF》,你就能晓得咋回事儿了。
<!-- m --><a class="postlink" href="http://www.mysas.net/sns/index.php?app=blog&mod=Index&act=show&id=1879&mid=1">http://www.mysas.net/sns/index.php?app= ... 1879&mid=1</a><!-- m -->
作者:
shiyiming
时间:
2012-5-13 22:58
标题:
Re: 关于%eval
老师,我看了您的博文。关于浮点数什么的,我还不明白具体是什么意思?至于在%syseval()当中的那四个Conversion-type我对照您给你解释,我看了,并且在机子上运行了下。正是那样,谢谢!
作者:
shiyiming
时间:
2012-5-16 07:02
标题:
Re: 关于%eval
[quote="leon_sas":3jzzcjak]老师,我看了您的博文。关于浮点数什么的,我还不明白具体是什么意思?至于在%syseval()当中的那四个Conversion-type我对照您给你解释,我看了,并且在机子上运行了下。正是那样,谢谢![/quote:3jzzcjak]
希望我没有说错,这里用的是integer division,第一个是2/8=0, 0*8=0。第二个是8*2=16,16/8=2。
作者:
shiyiming
时间:
2012-7-11 13:47
标题:
Re: 关于%eval
<!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
欢迎光临 SAS中文论坛 (http://www.mysas.net/forum/)
Powered by Discuz! X3.2