03-Tcl数学表达式及expr命令
3 Tcl书写表达式及expr命令
Tcl提供了有效的数学运算和逻辑运算功能。通过expr可以实现对数学表达式的分析和计算。
3.1 数学与逻辑运算符
| 运算符 | 说明 |
|---|---|
| - + ~ ! | 一元减(取负)、一元加(取正)、按位反、逻辑非 |
| * / % | 乘、除、取余 |
| + - | 加、减(二元操作符) |
| << >> | 左移、右移(二元操作符) |
| < <= >= > | 小于、小于等于、大于等于、大于 |
| == != | 布尔等于、不等于 |
| & | 按位与 |
| ^ | 按位异或 |
| | | 按位或 |
| && | 逻辑与 |
| || | 逻辑或 |
| x?y:z | 三元表达式,x满足为y,不满足为z |
3.2 数学函数
| 函数名 | 说明 | 举例 |
|---|---|---|
| abs(arg) | 取绝 | set a -10 # a = -10 ; set a [expr abs($a)] |
| acos(arg) | 反余弦 | |
| asin(arg) | 反正弦 | |
| atan(arg) | 反正切 | |
| atan2 | 比值取反正切 | |
| ceil(arg) | 向上取整 | |
| cos(arg) | 余弦 | |
| cosh(arg) | 双曲余弦 | |
| double(arg) | 转换双精度 | |
| exp(arg) | exp运算e的幂 | |
| floor(arg) | 向下取整,与ceil相对 | |
| fmod | 取余(结果为浮点型) | |
| hypot(x,y) | 根据直角三角形两直角边长度计算出斜边长度 | |
| int(arg) | 取整 | |
| log(arg) | 自然对数 | |
| log10(arg) | 以10为底的度数 | |
| pow | 幂运算 | |
| rand() | 取0-1之间的随机实数 | set a [expr 10*[expr rand()]] |
| round(arg) | 四舍五入取整 | set a [expr round(10.5)] |
| sin(arg) | ||
| sinh(arg) | ||
| sqrt(arg) | 求二次根 | |
| srand(arg) | 以整数arg为随机数生成器的种子产生随机数 | |
| tan(arg) | ||
| tanh(arg) |
3.3算数运算举例
set var1 5
set var2 3
set res [expr $var1 /$var2] #var1和var2都是整数结果为整数
=>1
set var1 5.0
set res [expr $var1 /$var2] # var1是浮点数,所以结果为浮点数
=>1.66666666667
set var1 3
incr var1 2 # incr a b 将b加到a上,a,b必须都是整数,
# 更改a原有的值
=>5
puts $var1
=>5
incr var1 -4 # var1加上-4,var1的值现在为1
=>1
3.4 incr命令
incr命令根据指定的步长来增加或减少参数的值。当步长为负时,减少参数值;当步长为正时,增加参数值。默认步长+1。
incr varName ?step?
set a 10
incr a
=> a=11
set a 10
incr a -1
=> a=9
03-Tcl数学表达式及expr命令的更多相关文章
- linux下数学运算器:expr命令(shell中完成数学运算)
expr用法 expr命令一般用于整数值,但也可用于字符串.一般格式为: expr argument operator argument expr也是一个手工命令行计数器. $expr 10 ...
- SHELL脚本--数学运算和bc命令
bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 使用let.(()).$(())或$[]进行基本的整数运算,使 ...
- Tcl数学运算
expr 数学表达式 Tcl支持的数学操作符(优先级按照从高到低): -一元负号 +一元正号 ~按位取反 !逻辑非 *乘 /除 %取余 +加号 -减号 <<左移位 >>右移位 ...
- linux shell let, expr 命令详解
linux命令之let.exprshell程序中的操作默认都是字符串操作,在运行数学运算符的时候可能得到意想不到的答案: var=1var=$var+1echo $var 将输出 1+1从这个例子中可 ...
- expr 命令
求表达式变量的值.expr 命令读入 Expression 参数,计算它的值,然后将结果写入到标准输出. 用法:expr Expression Expression 参数规则: 用空格隔开每个项. 用 ...
- 【转】linux expr命令参数及用法详解
在抓包过程中,查看某个设定时间内,数据上下行多少,用命令expr 计算! --------------------------------------------------------------- ...
- linux expr命令参数及用法详解
expr用法 expr命令一般用于整数值,但也可用于字符串.一般格式为: #expr argument operator argument expr也是一个手工命令行计数器. #$expr 10 + ...
- SHELL脚本--expr命令全解
bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html expr命令可以实现数值运算.数值或字符串比较.字符串匹配.字 ...
- Linux之expr命令详解
expr命令: expr命令是一个手工命令行计数器,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串. –格式为: expr Expression(命令读入Expressi ...
- (转)linux expr命令参数及用法详解
linux expr命令参数及用法详解 原文:http://blog.csdn.net/tianmohust/article/details/7628694 expr用法 expr命令一般用于整数值, ...
随机推荐
- WPF通用权限平台系统,正在研发中(基本于:VS2019 WPF+WebAPI(.NET 6.0)+SqlSugar +SQLServer2014)
- 如何使用 Helm 在 K8s 上集成 Prometheus 和 Grafana|Part 2
在 Part 1 中,我们一起了解了什么是 Prometheus 和 Grafana,以及使用这些工具的前提条件和优势.在本部分,将继续带您学习如何安装 Helm 以及如何使用 Prometheus ...
- gmap构建离线地图,用createCustomerTiledLayer方法,瓦片地址尾部多了 ?x={x}&y={y}&z&{z} 导致无法显示地图。
gmap构建离线地图,用createCustomerTiledLayer方法,瓦片地址尾部多了 ?x={x}&y={y}&z&{z} 导致无法显示地图. function in ...
- Karmada 结合 coreDNS 插件实现跨集群统一域名访问
本文分享自华为云社区<Karmada 结合 coreDNS 插件实现跨集群统一域名访问>,作者:云容器大未来 . 在多云与混合云越来越成为企业标配的今天,服务的部署和访问往往不在一个 K8 ...
- 分布式缓存服务DCS:企业版性能更强,稳定性更高
摘要:企业版性能指标达到业界TOP1,行业领先30%,内核态实现真正多线程. 一.背景介绍 近年来,随着各行业业务需求急速增加,数据量和并发访问量呈指数级增长,原来只能依附于关系型数据库的传统&quo ...
- 华为云GaussDB(for openGauss)商用啦!
摘要:截止目前,华为消费者云已在GaussDB(for openGauss)上线了40+业务,包括弹幕&评论.云空间.地理大数据等业务系统,实时为5亿+用户提供高效服务. 生命在于运动,健康打 ...
- 火山引擎DataLeap数据调度实例的 DAG 优化方案 (二):功能设计
针对上面存在的问题以及对需求的分析,我们可以进行如下的功能实现与设计: 首先是渲染方案的替换,将 svg 的渲染方案替换成 canvas 渲染,通过减少页面中 DOM 的数量,提高前端渲染性能. 其次 ...
- PPT 光效果
点状.线状.面状.光影 "光" = PPT高大上的秘密
- Java 项目工程搭建 --创建父工程
Java 项目工程搭建 --创建父工程 Java 项目工程搭建 --创建子模块(依赖父工程) Intellij 2018 更多详细内容见尚硅谷阳哥视频,实际项目中更多的是copy,修改pom Inte ...
- 让 ChatGPT 如虎添翼 2.0
月初写了4个工具,让 ChatGPT 如虎添翼!,时隔二十多天,我又发现了基于ChatGPT的应用,只推最好用的,强烈建议大家都感受一下. 极简搭建 ChatGPT 演示网页 项目地址:https:/ ...