|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 张文汽车 于 2016-7-30 18:19 编辑
; \9 F- V4 t9 S% v+ R, e9 _9 l# q TCL脚本语言是一种基于字符串命令的语言,
( N( x# I: ^+ ~ Y6 Q3 }6 ` 数据类型会根据其使用场合进行自动的转换,: g# ?) U" [: {# S- ~
这也是TCL语言最大的一个特点之一。
T; Y% P6 K$ {/ O* C, U1 g, @ 那么这种自动转换一不注意可能不会得到我们想要的结果,
/ s5 X- [. V, L 下面看一个实例: - #首先我们定义两个变量,都是整数的( `5 e) E/ [+ q5 q
- set a 103 r6 s- s- \$ T2 c
- set b 3
' |: ~7 R+ q8 Z6 W9 T+ Z# r% q, Y3 I - #然后我们再定义一个变量,来接收这两个整数相除得到的结果' {! G5 |# T8 S& Z, W. C
- set c [expr $a/$b]! v) Q* _- f1 l
- #接下来我们输出c的值( U9 l2 x/ Y& P3 j, \" i
- puts $c
# @! w% a) m- k
复制代码 那么现在问题来了,按我们正常的思路来理解的话,
: j- _0 g5 l8 _; e3 n; y9 c C的值应该是3.3333....,
9 h7 C& t/ p8 L2 i2 g0 C. @ 但是我们看到输出的结果却是3 ,
7 P# ?( {$ _/ l% |% o; O& U" a2 e, k7 D* S6 I5 b
这是为什么呢? ( ~1 `$ z6 ?" L! i( I" w" E' b) M
& b/ q$ j% R, A- i ?; A- j9 A
这是因为我们定义的a和b都是一个整数变量,
9 P; C' h% r! Y) _ 那么对于两个整数变量的操作得到的结果也将是一整数,# Y' G+ m! G/ k; {8 V
所以我们看得到的C的值是3也就不奇怪了。( x) D; L6 L4 y6 f9 p
所以我们在定义变量的时候一定要明确变量的数据类型,+ O5 G2 f# C9 J5 a7 \6 Z+ q4 Y
不然可能会得到意想不到的结果。# C- |$ D! p" n9 S6 {
以下是修正后的程式
* ^# R( L8 f Q) |& P! `; I3 L- #首先我们定义两个变量,都是整数的
' O3 G3 l& n6 P, m4 J - set a 10.
; r! @+ o* K+ d3 v4 O - set b 3.3 I& T( V0 _6 P7 s: q( m+ c+ K
- #然后我们再定义一个变量,来接收这两个整数相除得到的结果
4 e' `& w" N1 n. L0 V# G9 x5 u - set c [expr $a/$b]
6 X: w1 g+ o0 J8 ]# r& y) g7 F - #接下来我们输出c的值
) c& A8 B2 ^ \ x a - puts $
9 \6 b2 ~) l% d6 {; W2 G4 B! r& t
复制代码 快去看看你没有这样的问题吧!!!
* j) w; a6 }) R) A4 d0 R3 I
! D; n# ` p4 X& b |
|