我想計算一個包括指數在內的表達式。如何在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