找回密码
 加入
搜索
查看: 4704|回复: 10

random()与JS中的random()不同,为什么?

[复制链接]
发表于 2009-9-28 01:18:18 | 显示全部楼层 |阅读模式
本帖最后由 newx 于 2009-10-8 23:52 编辑

在JS中:
Math.random()
产生0至1的17位的随机数,
但在AU3中random()为什么只有16位?怎么解决?
发表于 2009-9-28 01:39:26 | 显示全部楼层
这问题问得有水平,js的定义和bat的定义一样吗?我也想知道
 楼主| 发表于 2009-9-28 23:01:45 | 显示全部楼层
sorry !
我是取网页中一图片,而图片是以ID的方式取得,而ID的值是通过JS中的math.random()取得,可是用AU3的random取得的数与JS的不同,取得的图片也就不一样了,这样取验证的图片就不准了。
我在C#中可以使用random的函数,所得的值与网页中的一样,但在AU3中不知怎样才能取与JS方式一样的值。
 楼主| 发表于 2009-9-28 23:02:04 | 显示全部楼层
sorry !
我是取网页中一图片,而图片是以ID的方式取得,而ID的值是通过JS中的math.random()取得,可是用AU3的random取得的数与JS的不同,取得的图片也就不一样了,这样取验证的图片就不准了。
我在C#中可以使用random的函数,所得的值与网页中的一样,但在AU3中不知怎样才能取与JS方式一样的值。
发表于 2009-9-28 23:52:38 | 显示全部楼层
你怎么取的数?
 楼主| 发表于 2009-9-30 22:06:51 | 显示全部楼层
在网页中的代码(JS):
Math.random() 所取的数是randnum=0.5029791949568696 (16位)
在AU3中:
msgbox(0,0,random()) 所取的数是:0.901016695424914 (15位)
这是网页中的验证码图片,所用的是XXXX.php?randnum=0.xxxxxxxxxxxxxxxx
0.xxxxxxxxxxxxxxxx是从JS函数Math.random()取得,要求是小数后16位,可用AU3的random只有15位,AU3应该怎么取得16位?
 楼主| 发表于 2009-9-30 22:07:06 | 显示全部楼层
在网页中的代码(JS):
Math.random() 所取的数是randnum=0.5029791949568696 (16位)
在AU3中:
msgbox(0,0,random()) 所取的数是:0.901016695424914 (15位)
这是网页中的验证码图片,所用的是XXXX.php?randnum=0.xxxxxxxxxxxxxxxx
0.xxxxxxxxxxxxxxxx是从JS函数Math.random()取得,要求是小数后16位,可用AU3的random只有15位,AU3应该怎么取得16位?
发表于 2009-9-30 22:12:54 | 显示全部楼层
别每次回2次重复的回复,不然扣分
发表于 2009-10-1 13:32:15 | 显示全部楼层
不知,帮顶
 楼主| 发表于 2009-10-8 23:51:32 | 显示全部楼层
已解决
AU3的Random()不能实现,但调用JScript就行了
Func nRandom()
   Local $code
   $code &= 'function vRandom()' & @CRLF
   $code &= '{' & @CRLF
   $code &= 'var now = new Date()' & @CRLF
   $code &= 'var nvalue = Math.random()+"_"+now.getTime()' & @CRLF
   $code &= 'return nvalue' & @CRLF
   $code &= '}' & @CRLF
   $nJS = ObjCreate("ScriptControl")
   $nJS.language = "JScript"
   $nJS.addcode($code)
   $nRandom = $nJS.Run("vRandom")
   Return $nRandom
EndFunc 

评分

参与人数 1金钱 +2 收起 理由
顽固不化 + 2 很巧妙的

查看全部评分

发表于 2015-3-4 17:08:25 | 显示全部楼层
学习了,最近正好也在写这方面的代码。遇到同样的问题,不过才用其他方法解决了,曲线救国了吧
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-28 16:16 , Processed in 0.128703 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表