我想计算一个包括指数在内的表达式。如何在TCL中避免浮点太小误差
但是当我尝试评估像一个表达式: exp(-1.0e3)
我得到一个错误消息说: "floating point value too small to represent"
我怎样才能避免这种情况?
我只想得到0.0当值太小,无法表示。
我想计算一个包括指数在内的表达式。如何在TCL中避免浮点太小误差
但是当我尝试评估像一个表达式: exp(-1.0e3)
我得到一个错误消息说: "floating point value too small to represent"
我怎样才能避免这种情况?
我只想得到0.0当值太小,无法表示。
你使用的是什么版本的Tcl?你在哪个平台上?它为我(在OSX):
$ tclsh8.4
% expr exp(-1.0e3)
0.0
% info patchlevel
8.4.19
$ tclsh8.5
% expr exp(-1.0e3)
0.0
% info patchlevel
8.5.9
$ tclsh8.6
% expr exp(-1.0e3)
0.0
% info patchlevel
8.6.1
它也工作得很好,当我把这个值在一个变量和使用,并且我已经检查Tcl将其理解为一个(中等)较大的负数和一些更大的负数(-1e100
)。
谢谢。它在最近的版本中工作。我使用的版本太旧(8.0和8.3)。 – syk
哦,他们真的很老。我记得大约在15年前把8.0调回,而8.4在今年夏天刚刚发布了最终补丁(8.4.20)...... –
你使用的是什么Tcl版本?我在Tcl 8.5.11上没有这个错误。 – Jerry