|
|
马上注册,结识高手,享用更多资源,轻松玩转三维网社区。
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 张文汽车 于 2016-7-30 18:19 编辑
( ]8 w3 A, n6 ^# k: ^% B TCL脚本语言是一种基于字符串命令的语言,
2 ^; ]# K& a' C9 _ 数据类型会根据其使用场合进行自动的转换,* I R4 ~7 o5 S+ J% e
这也是TCL语言最大的一个特点之一。
$ X/ H" e( H5 E$ @$ J 那么这种自动转换一不注意可能不会得到我们想要的结果,. [7 n# F+ X* j8 @* |+ [
下面看一个实例: - #首先我们定义两个变量,都是整数的' s4 h& Z& O1 |- q1 w
- set a 10% v' `/ U# k+ \: _ L9 z
- set b 3
Q$ k0 |, Z2 J _ - #然后我们再定义一个变量,来接收这两个整数相除得到的结果- ]1 L/ J' w) a" b) \. _& K8 v
- set c [expr $a/$b]$ Y h* k9 B# y6 V
- #接下来我们输出c的值
4 S$ b: ^7 f1 ]2 }# p - puts $c5 q, N$ h) t& `7 y/ k5 x
复制代码 那么现在问题来了,按我们正常的思路来理解的话,
- g$ ?, D, ^6 D1 v; C2 Y: U$ j C的值应该是3.3333....,/ [' Y6 { I0 A4 c: L: K
但是我们看到输出的结果却是3 ,1 E- V$ Y, b7 V) |3 z
0 [6 b* z! @' o 这是为什么呢? " f% v0 \2 c& K
3 q: X7 e7 f* Y" W/ c 这是因为我们定义的a和b都是一个整数变量,
1 O. y v) m# {/ [. W5 B9 [ 那么对于两个整数变量的操作得到的结果也将是一整数,
. R6 V$ q! u# {$ z: I 所以我们看得到的C的值是3也就不奇怪了。" Q! r6 r4 @% a
所以我们在定义变量的时候一定要明确变量的数据类型,
+ E' b/ D; g- I3 F 不然可能会得到意想不到的结果。5 r3 l' ^( B, N& a' |# l( B
以下是修正后的程式0 |0 c5 z1 o: {$ f/ j2 j, O" q
- #首先我们定义两个变量,都是整数的# A7 I3 ]; K) J# X' C! \& n4 Z
- set a 10.6 U2 L6 T* R4 h4 h
- set b 3.
( \/ z$ W* g3 g0 J# b4 @ - #然后我们再定义一个变量,来接收这两个整数相除得到的结果. f$ p- |1 u L& X8 _
- set c [expr $a/$b]
* f9 S2 I% \4 k4 J - #接下来我们输出c的值& u/ ~7 p% [+ s; U
- puts $/ _4 W0 t; v0 t+ T/ E' h
复制代码 快去看看你没有这样的问题吧!!!
$ w4 S2 ]# D/ V o6 w% x+ d( ~9 u' ^0 ^1 {, P
|
|