标签归档:浮点

都是小数点惹的祸

今天mymas上有人用了两种方法通过分组求平均数问题,发现结果不一样。为了说明问题,我自己简单地造了些数据,如下:

data dup;
input  id  date  field  value ;
cards;
1  2  0.0001  10
1  2  0.0001  10
1  2  0.00001  10
1  2  0.00001000001  10
1  3  0.00001  10
1  3  0.00001  10
1  3  0.00003  10
1  3  0.00003  10
1  3  0.00003  10
;
run;
proc sql;

create table NoDup1 as
select unique id, date, field, avg(value) as value from Dup group by id, date, field;
quit;   ;
*method 2;
proc means data = Dup nway ;
class  id date field;
var value;
output out = NoDup2(drop = _type_ _freq_) mean = value;
run;
初一看来,好像代码没什么问题,应该结果一致,然而结果运行后,用sql得到的结果与proc步不一样,这是为什么? 似乎这是SAS的错误,哈哈这个多么伟大的一个发现啊!  SAS可以说是总多行业里面的标准,竟然也会错。   其实这不是第一次发现这类问题。 以前也遇到过同样的一个问题,就是: 继续阅读都是小数点惹的祸