TCL语言笔记:TCL中的数学函数

时间:2023-08-14 22:30:26

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