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

时间:2014-06-26 14:14:40

标签: math expression tcl

我想在Tcl中进行数学运算,得到精确的结果,例如点后两位数。示例:1/100 = 0.01。我尝试使用puts" [格式"%。2f" [expr 1/100]]",但这没有用。

有人可以解决我的难题吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

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

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

如上所示,double强制转换功能可能会有所帮助。

答案 1 :(得分:0)

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

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

或者...

puts "[format "%.2f" [expr 1.0/100]]"

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

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