How can I do math in Tcl
] and friends.
See Also edit
- a more detailed list of the functions that the man page skims over
- expr problems with int
- historical information regarding the previous long limitations of numbers in Tcl, and a discussion on wide.
Prior to 8.5, Tcl
's built in math support was limited
to what will fit into a long
or double C
variable type. To perform math on longer numbers, some alternative, such as Tom Poindexter
extension, were needed.DKF
: From Tcl 8.4 onwards, you can also use a larger integer type termed a wide
. This lets you work with 64-bit values on 32-bit machines...
] is the primary tool for doing calculations in Tcl.
Unless you have a very
good reason not to, you should always enclose the argument expression
to [expr] in curly braces. This allows the bytecode compiler to optimise your code more thoroughly since it has fewer possible interpretations and the contents of variables and the results of commands will not unexpectedly modify the meaning of the expression.AM
A "very good reason" is that part or whole of the expression is not a constant, e.g.
set v [expr "$a $op $b"]
Surrounding this epression with braces would fail, since $a $op $b
is not a properly formed expression.