Math 显示数学表达式的精确结果

Math 显示数学表达式的精确结果,math,expression,tcl,Math,Expression,Tcl,我想用Tcl做一个精确的数学运算,例如点后两位数。示例:1/100=0.01。我尝试了puts“[format”%.2f“[expr 1/100]]”,但没有成功 有人能解开我的谜题吗 谢谢 可以将浮点值而不是整数传递给表达式: puts "[format "%.2f" [expr 1/100.0]]" 或者 此外,建议将表达式用括号括起来,例如: puts "[format "%.2f" [expr {1/100.0}]]" Tcl的除法expr运算符仅在至少一个参数是浮点数时才进行浮点除

我想用Tcl做一个精确的数学运算,例如点后两位数。示例:1/100=0.01。我尝试了puts“[format”%.2f“[expr 1/100]]”,但没有成功

有人能解开我的谜题吗


谢谢

可以将浮点值而不是整数传递给表达式:

puts "[format "%.2f" [expr 1/100.0]]"
或者

此外,建议将表达式用括号括起来,例如:

puts "[format "%.2f" [expr {1/100.0}]]"

Tcl的除法
expr
运算符仅在至少一个参数是浮点数时才进行浮点除法。如果两者都是整数,则得到整数除法

% expr {1/100}
0
% expr {1.0/100}
0.01
% expr {1/double(100)}
0.01

正如您在上面看到的,
double
cast函数在这里可能会有所帮助。

问题在于我传递的不是数字,而是其他表达式。使用双重工程。无论如何,谢谢你@user3518939啊,在你的问题上应该这么说。您应该单击答案旁边的勾选框,将其标记为已接受答案,并将您的问题标记为已解决。
% expr {1/100}
0
% expr {1.0/100}
0.01
% expr {1/double(100)}
0.01