TCL基础教程——数学计算
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
TCL基础教程——数学计算
————————————————————————————————作者:————————————————————————————————日期:
TCL基础教程——(3)数学计算
对于TCL来说,其实并没有自己的数学运算方法,而是使用了C的计算功能,在TCL进行计算的时候,使用expr来调用如expr 7。
2/4
[ppcorn@localhost ppcorn]$ cat math1.tcl
#!/usr/bin/tclsh
set value [expr 7。
2/4]
puts $value
[ppcorn@localhost ppcorn]$ 。
/math1.tcl
1。
8
上面的程序计算了除以4的结果为,请特别注意中括号[]的用法,它表示括号内内容的值.此方法以后我们会频繁的用到.在这个程序中,就是把赋值给value,然后输出value的值。
再看一个程序
[ppcorn@localhost ppcorn]$ cat math2。
tcl
#!/usr/bin/tclsh
set value [expr 5/4]
puts $value
set value1 [expr 5。
0/4]
puts $value1
value和value1分别得到的值是多少?
可能有人会脱口而出,都是1。
25,那么看一下实际效果呢?
[ppcorn@localhost ppcorn]$。
/math2.tcl
1
1。
25
或许有人会觉得奇怪,为什么呢?这就是因为expr在计算的时候,会认为5是整数类型,4也是整数类型,自然结果就是整数类型,为1,而5。
0是浮点数类型,4是整数类型,这样计算的结果取精确度高的,为浮点数,于是得到了。
那么如何让两个整数相除得到一个浮点数呢?总不能总是在整数后面加0吧?对的,在TCL 中提供了内置的double方法,完成从整数到浮点数的转换.
[ppcorn@localhost ppcorn]$ cat math3.tcl
#!/usr/bin/tclsh
记住,千万不要写成了double(5/4)了,这样会先计算5/4得到了1的结果,然后变为浮点数,也就是而已。
此外,对于无穷小数,TCL标准输出为12位有效数字,对于一般计算来说足够了.如果觉得不够,我们可以使用内置的变量tcl_precison来控制精度,不过纵然使用了tcl_precison,最高也只能设置为17.
可以看到上例中,从0开始到最后一个3,恰好为17位,第18位1为无效。
那么TCL中究竟支持哪些运算符,又有哪些内置函数呢?下面一一列出.
表格二:TCL中的算术操作符
限于篇幅,我在这里就不细致介绍各个操作符的用法了,有兴趣的自己研究。
需要说明其中逐位操作符都是对单个条件操作的,逻辑操作符都是对两个条件操作的,如果这里不明白的话,请参考任何一本较为详细的编程资料。
表格三 TCL内建数学函数。