expr命令如何工作?

时间:2014-07-23 15:24:22

标签: tcl

puts "-1/2 is [expr -1/2]"

对于上述内容,输出为:

-1/2 is -1

我不知道它是如何工作的。

1 个答案:

答案 0 :(得分:5)

当你使用-1/2时,你将两个整数的除法传递给解释器,因此告诉它做一个整数除法,它返回最接近的整数,小于结果。

例如,-1 / 2给出-0.5,-1是最接近-0.5的整数。

其他一些例子:

% expr 5/2    ;# Should give 2.5, closest integer down is 2
2
% expr -5/2   ;# Should give -2.5, closest integer down is -3
-3
% expr 5/-2   ;# Should give -2.5, closest integer down is -3
-3

如果您想获得-0.5作为结果,您可以将两个值中的一个更改为浮点数...

% expr -1.0/2
-0.5
% expr -1/2.0
-0.5

或在任一号码上使用double

% expr double(-1)/2
-0.5
% expr -1/double(2)
-0.5

请注意,为了提高速度和预防注射,您可能需要brace your expressions