SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 760|回复: 5
打印 上一主题 下一主题

四舍五入问题

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2011-11-13 11:57:55 | 只看该作者

四舍五入问题

某一字段变量下有一串数值型数值,如何根据每一个观测值的第一个非零数字进行四舍五入,如:
var
0.050100
0.043200
0.003000
0.005300
0.000007
需要把上边var样例数据四舍五入转换成如下:
want
0.100000
0.001000
0.000100
0.010000
0.000010
数据很多,就简单列了些,真实数据小数位很多,望各位指教下(小数位12位以内都行)...
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2011-11-13 16:26:23 | 只看该作者

Re: 四舍五入问题

[code:3im292u6]data raw;
    input var;
    want=ifn(var>=5*10**floor(log10(var)),10**ceil(log10(var)),0.1*10**floor(log10(var)));
    format var want 8.6;
datalines;
0.050100
0.043200
0.003000
0.005300
0.000007
;[/code:3im292u6]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2011-11-14 12:40:16 | 只看该作者

Re: 四舍五入问题

[quote="hopewell":33y7tllb][code:33y7tllb]data raw;
    input var;
    want=ifn(var>=5*10**floor(log10(var)),10**ceil(log10(var)),0.1*10**floor(log10(var)));
    format var want 8.6;
datalines;
0.050100
0.043200
0.003000
0.005300
0.000007
;[/code:33y7tllb][/quote:33y7tllb]

多谢hopewell的解答!!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2011-11-14 22:48:34 | 只看该作者

Re: 四舍五入问题

你要求的结果好像不是“根据每一个观测值的第一个非零数字进行四舍五入”;
另外有意思的是:0.1 will be converted to 0.01, but 0.05 be converted to 0.1.
anyway, code is funny -  want=ifn(var>=5*10**floor(log10(var)),10**ceil(log10(var)),0.1*10**floor(log10(var)));
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2011-11-15 21:34:07 | 只看该作者

Re: 四舍五入问题

[quote="sun59338":m54jtm3o]你要求的结果好像不是“根据每一个观测值的第一个非零数字进行四舍五入”;
另外有意思的是:0.1 will be converted to 0.01, but 0.05 be converted to 0.1.
anyway, code is funny -  want=ifn(var>=5*10**floor(log10(var)),10**ceil(log10(var)),0.1*10**floor(log10(var)));[/quote:m54jtm3o]

是[quote:m54jtm3o]根据每一个观测值的第一个非零数字进行四舍五入[/quote:m54jtm3o],但的确也没注意0.1这种问题...多谢sun59338的提醒!!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2011-11-17 11:25:56 | 只看该作者

Re: 四舍五入问题

want=ifn()是什么意思?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-5-7 05:39 , Processed in 0.073191 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表