一、TCL數學函數列表
| 函數名 |
說明 |
舉例 |
| abs(arg) |
取絕對值 |
set a –10 ; #a=-10 set a [expr abs($a)]; # a=10 |
| acos(arg) |
反余弦 |
set p 1.0; set a [expr acos($p) => a=0.0 |
| asin(arg) |
反正弦 |
|
| atan(arg) |
反正切 |
|
| atan2 |
比值取反正切 |
|
| ceil(arg) |
返回不小於 arg 值的整數值 |
|
| cos(arg) |
余弦 |
|
| cosh(arg) |
雙曲余弦 |
|
| double(arg) |
轉換雙精度 |
|
| exp(arg) |
exp 運算(e 的冪) |
|
| floor(arg) |
|
|
| fmod |
取余(結果為浮點型) |
|
| hypot(x,y) |
根據直角三角形兩直邊長度計算出斜邊長度 |
|
| int(arg) |
取整 |
|
| log(arg) |
自然對數 |
|
| log10(arg) |
以十為底的對數 |
|
| pow |
冪運算 |
|
| rand() |
取 0 到 1 之間的隨機實數數 (無輸入參數) |
set a [expr 10 * [expr rand()]];0 到 10 之間隨 即實數 |
| round(arg) |
四舍五入取整數 |
%set a [expr round(10.5)]; =>11 |
| sin(arg) |
|
|
| sinh(arg) |
|
|
| sqrt(arg) |
求二次根 |
|
| srand(arg) |
以整數 arg 為隨機數生成器的種子產生隨機數 |
|
| tan(arg) |
|
|
| tanh(arg) |
|
|
二、incr命令
incr 命令根據指定的步長來增加或減少參數的值。當步長為負時,減少參數值;當步長為正
時,增加參數值。默認步長為+1。
set a 10 ; incr a =>a=11 set a 10 ; incr a –1 => a=9
三、字符串函數
| 命令 |
描述 |
| append |
將值追加到字符串尾 |
| binary |
二進制字符串操作 |
| format |
字符串格式化 |
| regexp |
正則表達式(用於字符串模式匹配) |
| regsub |
用正則表達式進行字符串模式匹配和替換 |
| scan |
字符串分解 |
| string options |
字符串操作和命令集 |
| subst |
字符替代(替代特殊字符) |
1.append 命令
append 命令比較簡單,它將一段字符串連接到另一字符串尾部從而組成新的字符串。此命令對變量直接修改。
[語法]: append varName ?value?
set var1 Hello set var2 World append var1 $var2 =>HelloWorld puts $var1 =>HelloWorld ;#var1 的內容被更改!
2.format 命令
format 命令和 C 語言中的 printf 和 sprintf 命令類似。它根據一組格式說明來格式化字符串。此命令不會改變被操作字符串的內容。
[語法]:format spec value1 value2 ...
spec 變元包含了格式說明關鍵詞和附加文字。使用%來引入一個關鍵詞,后跟 0 個或者多個修飾符,然后使用一個轉換格式符結尾。
關鍵詞的基本格式是“%aaaB”:aaa 是修飾符,B 代表一種格式轉換符。例如%f 用於將對應位置的參數轉化為浮點數。 如果要使用”%”號,則可以使用%%來實現。否則會將%后的字符作為關鍵詞來處理。
set res [format "%2\$s" 1 5 9] =>5 %puts $res =>5 set str [format "%3\$s %1\$s %2\$s" "are" "right" "You"] => You are right
