2012-04-14 52 views
2

我遇到了TCL的问题。我可以添加和相乘两个整数变量。这工作得很好:司运营商没有产生任何结果

set hdsuc [expr {$hdsuccess * $hdcount}] 
set hdsuc [expr {$hdsuccess + $hdcount}] 

但是,由于某种原因,我不能分开他们。下列情况不工作:

set hdsuc [expr {$hdsuccess/$hdcount}] 

以上返回0莫不是某些问题的设置?

+3

我猜你正在做的整数除法,比较'expr的{1/2}'和'EXPR {1.0/2}'。我对TCL知之甚少,不知道什么是“正确”的解决方案。 – 2012-04-14 00:52:26

回答

7

它正在做整数除法。您需要将其中一个参数转换为double。例如: -

set hdsuc [expr {double($hdsuccess)/$hdcount}] 
+1

+1尽管使用了“铸造”一词。这不是演员阵容,而是转换。 :-) – 2012-04-14 06:28:31

+0

啊,你一直在救我!谢谢。 – thelazydeveloper 2012-04-14 12:31:42