一、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