一个关于tcl/tk的问题

一个关于tcl/tk的问题

感谢版主上次的帮助,这次又有问题,请不吝赐教:)

在tclsh下回车:
% set w 4.4
4.4
%set remainer [expr {fmod(($w-0.4),0.9)}]
0.4
%set flag [expr {$remainer - 0.4}]
-1.11022302463e-16


这是为何??我认为应该是0.0才对!!


急解!:)

THX AGAIN      
计算机内部对浮点数的表示都是近似的, 离散的, 不像你所想象的那样准确      
但我需要用$remainer是否>=0.4来控制程序的流转,当位于临界点($reaminer==0.4),程序会转向$remainer<0.4的分支语句,而这是我所不希望的,那么该如何避免呢??这个会破坏我的设计意图,哎,      
一般情况下不建议用浮点数进行比较, 如果对精度没有很高要求, 倒也无妨      
对啊,我也不希望进行双精浮点运算,小数后面1位的精度就可以了,该如何做呢??      
如果精度只到 0.1, 就不用改了      
那如何操做?具体语句呢??      
如果精度为 0.1, 则 3.95 跟 4.0 或者 4.05 效果是一样的