不测试,谁能知道这个运行结果?
$a='500'$b='1000'
ConsoleWrite($a<$b)
谁知道结果是true还是false? 他NND, 用了这么长时间的AU3,今天才发现我有一个想法始终是错误的。
哎, 要都改过来可就麻烦死了。 谁知道结果是true还是false?
foboy 发表于 2011-5-11 00:24 http://www.autoitx.com/images/common/back.gif
这还用试嘛,当然是False了,因为这时比较的是字符串,而不是数字,当然5<1是False了
学过别的语言 --- 象C,必须明确申明类型,就非常明了,不会有什么问题。
象au3这样的,为了减少使用它的难度,它“聪明”地自动判断是什么类型,而不需要写的人去明确。就会存在糊涂的情况 false,同为字符串对比,应该以asc码对比吧,我是这样想 本帖最后由 foboy 于 2011-5-11 01:37 编辑
在我的印象里,既然AU3是自动判断数据类型,涉及到数学运算应该把纯数字的字符串当数字处理啊。
谁知道我错了这么久{:face (319):} $a='500' == string(500)
$b='1000' == string(1000) 本帖最后由 happytc 于 2011-5-11 05:49 编辑
在我的印象里,既然AU3是自动判断数据类型,涉及到数学运算应该把纯数字的字符串当数字处理啊。
谁知道我错 ...
foboy 发表于 2011-5-11 01:36 http://www.autoitx.com/images/common/back.gif
因为你赋值时加了引号呀
你改正
$a=500
$b=1000
ConsoleWrite($a<$b)
试试 回复 7# happytc
那如果是这样的情况呢?还是当成字符串来处理吗?
$a=500
$b='500'
ConsoleWrite($a<$b) 刚才我也遇到这个问题 stringreplace
要用这个 string() 转换才能替换数字 ...
php 里面是自动的。。。 回复happytc
那如果是这样的情况呢?还是当成字符串来处理吗?
3mile 发表于 2011-5-11 09:53 http://www.autoitx.com/images/common/back.gif
我没有测试前根据的别的语言同样情形猜了下,au3也跟别的语言一样会‘强制转换’后来比较。
就好象C里若把Float类型跟Double类型比较时会自动把Float转成Double后再比较一样 回复 10# happytc
对了,就是这样.
C也一样会"聪明"地自动判断数据类型吧? 回复 5# foboy
哈哈,老大也有出错的时候。。。你的数字已经加引号了,所以就是字符串了。我之前还碰见过一个情况,就是用正则提取出来的数字有时候也是字符串类型的
http://www.autoitx.com/thread-23585-1-1.html foboy 内存地址 哈哈 我是你的客户 原来是你啊, 以后多交流。我在做游戏数据的通用调用接口。借助AutoItObject UDF做的。如果你以后也经常做这块,可以互相共享一下资源,节省劳动力。 楼主,这是什么意思啊?
页:
[1]