Пространство имен ::tcl::mathfunc
было добавлено в Tcl 8.5 и не поддерживается в Tcl 8.4. В Tcl 8.5+ вы можете использовать
namespace import ::tcl::mathfunc::*
pow 10 2
# -> 100.0
, а также вызова pow
изнутри expr
, но в Tcl 8.4 и более ранних версий вы должны использовать
expr {pow(10, 2)}
# -> 100.0
В mathfunc
команды, если они присутствуют, могут служить регулярные команды Tcl или можно назвать псевдофункциями в скрипте выражения, переданном expr
. В последнем случае используется синтаксис C-стиля с скобками и запятыми. Суть их в основном состоит в том, что упрощается расширение expr
с новыми математическими функциями. В качестве побочного эффекта можно вообще избегать вызова expr
для простейших вычислений.
pow
функция возвращает значение с плавающей точкой, так же, как и в C. Как Донал Стипендиаты описывает в своем ответе (QV), целое число, возведение в степень может быть задано с помощью **
оператор (который также является отдельной командой: tcl::mathop::**
) , Этот оператор только Tcl 8.5+.
Документация: expr, mathfunc, mathop
Спасибо, он должен получить вывод с плавающей запятой? –
@ Pi-Turn Да. Ожидаемые и определенные для работы таким образом. До того, как bignums - функция 8.5 - полезный диапазон возведения в степень по целым числам был настолько мал, что мы просто не беспокоились. –