0.4 - 0.3 ≠0.1 ?

data d1;
 a = 0.4;
 b = 0.3;
 c = a - b;
 if c = 0.1 then flg=1;
 else flg=0;
 put flg;
run;

2chには,「SASは2進数で計算をおこなうため0.1000000000001みたいなことがおきてるわけよ。きちんとRound関数使いなさい」との指示が。

data d1;
 a = 0.4;
 b = 0.3;
 c = round(a - b , 0.000001); /* 桁数はお好みで */
 if c = 0.1 then flg=1;
 else flg=0;
 put flg;
run;

いやあ,SASさわって10年になるけど知らなかった。。