|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 张文汽车 于 2016-7-30 18:19 编辑
& ?2 W9 ?' y& |5 M* u7 w TCL脚本语言是一种基于字符串命令的语言,
: |8 I0 ~+ n$ r$ r, E- l 数据类型会根据其使用场合进行自动的转换,
; X5 t# w. \5 r- s9 x; E 这也是TCL语言最大的一个特点之一。
2 d6 W6 q' F3 }: |" F 那么这种自动转换一不注意可能不会得到我们想要的结果,
. f7 N R% z; Q 下面看一个实例: - #首先我们定义两个变量,都是整数的
9 `+ {3 T* U. l - set a 10
+ M. [, x. H) P9 m3 ~% Q - set b 32 _& {) a" [* p J, a* C4 ]3 \1 h3 u
- #然后我们再定义一个变量,来接收这两个整数相除得到的结果
) v9 m9 ^) V8 q0 @. T* l, v- L - set c [expr $a/$b]
: s2 r6 ~5 @+ I! Q% x% a - #接下来我们输出c的值
. t( c- E% f$ T: o& h - puts $c
( L# O( x: F) P; W. q; l; U4 m
复制代码 那么现在问题来了,按我们正常的思路来理解的话,3 I- o* u/ u. I1 q" o- f" b6 |6 r
C的值应该是3.3333....,) i( I8 `+ j/ K* _4 Q2 `
但是我们看到输出的结果却是3 ,4 X$ z8 ?$ P& q! i; Z: Y
L" Q0 |! s( H; v/ |$ V
这是为什么呢? 2 x3 y/ W9 V( _8 @5 j
( H# A# N0 x* h8 e. q
这是因为我们定义的a和b都是一个整数变量,& }: L* |8 A% e" S0 r( \
那么对于两个整数变量的操作得到的结果也将是一整数,, \; ~) s6 r* S
所以我们看得到的C的值是3也就不奇怪了。) Z& V" t( S: [% T
所以我们在定义变量的时候一定要明确变量的数据类型,
5 g2 x% y* y4 F+ J; F 不然可能会得到意想不到的结果。1 l0 N7 p2 v6 h1 _0 y
以下是修正后的程式
$ |4 c. M3 ?, X; D/ e6 Z, s: Q- #首先我们定义两个变量,都是整数的4 u0 X8 s ]& C( b
- set a 10.
" z3 w* l+ ~3 p+ d( D. g O7 a- w - set b 3.
i% w9 f- L" j1 M* H; ? - #然后我们再定义一个变量,来接收这两个整数相除得到的结果; V, e0 s# [& x; ]/ h6 }
- set c [expr $a/$b]
* K8 a7 p$ S1 P' z7 k! W - #接下来我们输出c的值
1 \; x6 \ Q% Y- i! @ - puts $
* f& D! H0 n4 A
复制代码 快去看看你没有这样的问题吧!!!
+ i$ K5 _) w7 o" E+ u5 R3 d) z
$ c# O7 x$ `9 l |
|