|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 张文汽车 于 2016-7-30 18:19 编辑
3 c/ m7 ]/ N1 ~, z& {9 O9 m TCL脚本语言是一种基于字符串命令的语言,/ @/ N' @/ e4 s8 H3 \: E
数据类型会根据其使用场合进行自动的转换,% Z5 [- E; t% S. ]! N
这也是TCL语言最大的一个特点之一。
* K0 @! u3 H) d+ _$ { p 那么这种自动转换一不注意可能不会得到我们想要的结果,* w7 b1 _" `0 C( f
下面看一个实例: - #首先我们定义两个变量,都是整数的1 \" A; F9 [8 G) h
- set a 10- h$ |5 k3 u. P: s' N3 V
- set b 3( U0 A/ ~: h! h T, v
- #然后我们再定义一个变量,来接收这两个整数相除得到的结果* a) ~+ V K: u
- set c [expr $a/$b]" V" k+ R- r* T' o
- #接下来我们输出c的值+ X1 [: ?- q3 H
- puts $c
/ `0 _/ h) T# u; q
复制代码 那么现在问题来了,按我们正常的思路来理解的话,6 c z) Q; \& [& R! d- g/ x
C的值应该是3.3333....,
, ], [- O3 J! q6 s o, @/ f @6 b 但是我们看到输出的结果却是3 ,( r. n, M) ^# r+ a
) c% S. |5 L# b" y, p% | 这是为什么呢? - z$ S) A5 O. W: x; ]
: u- k% y5 [' @6 `2 u
这是因为我们定义的a和b都是一个整数变量,
7 {. Q: Y2 z( C% d' o/ o 那么对于两个整数变量的操作得到的结果也将是一整数,
{! X$ O1 X# n8 `2 a 所以我们看得到的C的值是3也就不奇怪了。1 ^2 v7 _- c" I! R$ G
所以我们在定义变量的时候一定要明确变量的数据类型,% T i; Y, @4 r& I: h1 J+ I' o+ M1 ^$ r3 g
不然可能会得到意想不到的结果。, f' v, W* }: V+ {8 R, r4 E
以下是修正后的程式
, ], d1 b# G" \" O+ @1 I+ ~1 S- #首先我们定义两个变量,都是整数的* U& P0 r% A3 S' {" ^) s6 S
- set a 10.$ `/ W+ g3 F3 ?1 R
- set b 3.
# e% X# A# E$ d - #然后我们再定义一个变量,来接收这两个整数相除得到的结果
) [. w/ m/ w: l/ Y5 Y7 ] - set c [expr $a/$b]
3 O! ^5 T& U2 r- D1 _( } - #接下来我们输出c的值) `) x! @# ^5 v+ Z6 H
- puts $# O! L# L; `, n2 z7 V; @; R2 a- y
复制代码 快去看看你没有这样的问题吧!!!
, @3 x y& N/ h9 `) }5 ]# h2 u" D: E
|
|