精易论坛

标题: 如果真对比长整数是假也执行,奇了怪了 [打印本页]

作者: zkl529    时间: 2023-2-7 22:55
标题: 如果真对比长整数是假也执行,奇了怪了
如果真  不能比较长整数???

QQ图片20230207225441.png (99.24 KB, 下载次数: 2)

QQ图片20230207225441.png

作者: 小明无敌    时间: 2023-2-7 22:55
直接a=取现行时间戳 然后b=设定时间 如果真的话调试输出a和b 这样来判断
作者: zkl529    时间: 2023-2-7 22:56
我怕我眼花了,我特意复制了,对比,是假,为啥是假,还执行??

QQ图片20230207225618.png (40.64 KB, 下载次数: 0)

QQ图片20230207225618.png

作者: 呼呼哈哈嘿嘿    时间: 2023-2-7 22:59
定位到这片汇编看看就知道了
作者: zkl529    时间: 2023-2-7 23:01
呼呼哈哈嘿嘿 发表于 2023-2-7 22:59
定位到这片汇编看看就知道了

都整到汇编了?
作者: zkl529    时间: 2023-2-7 23:02
来个大佬
作者: 凌哥    时间: 2023-2-7 23:02
代码复制出来看看啊
作者: 大司命    时间: 2023-2-7 23:04

用秒级Unix时间戳就好了!
作者: zkl529    时间: 2023-2-7 23:04
凌哥 发表于 2023-2-7 23:02
代码复制出来看看啊

.版本 2
.支持库 spec

.子程序 子程序1
.参数 a, 整数型
.局部变量 随机数, 整数型
.局部变量 设定时间, 长整数型

' 延迟 (1000)

' 调试输出 (时间_取现行时间戳 ())
置随机数种子 ()
随机数 = 取随机数 (到整数 (前1.内容), 到整数 (后1.内容))

设定时间 = 到数值 (运行时间) - 到数值 (随机数)
' 调试输出 (设定时间)

.循环判断首 ()

    .如果真 (到长整数 (时间_取现行时间戳 ()) > 设定时间)
        调试输出 (随机数, “现行时间”, 到长整数 (时间_取现行时间戳 ()), “设定时间”, 到长整数 (设定时间))
        下单子程序 (到文本 (a), 到文本 (随机数))
        跳出循环 ()
    .如果真结束


.循环判断尾 (1 = 1)

作者: 凌哥    时间: 2023-2-7 23:05
zkl529 发表于 2023-2-7 23:04
.版本 2
.支持库 spec

把两个时间戳也发出来
作者: zkl529    时间: 2023-2-7 23:06
大司命 发表于 2023-2-7 23:04
用秒级Unix时间戳就好了!

问题是, 明明是假,为啥还执行呢?
作者: 执骨哟    时间: 2023-2-7 23:08
zkl529 发表于 2023-2-7 23:06
问题是, 明明是假,为啥还执行呢?

.如果真 (到长整数 (时间_取现行时间戳 (真)) > 设定时间)

就好了,这个命令的问题

补充内容 (2023-2-7 23:10):
不对,看错了,抱歉=- =
作者: zkl529    时间: 2023-2-7 23:11
zkl529 发表于 2023-2-7 23:06
问题是, 明明是假,为啥还执行呢?

精易模块 10.3.5
作者: zkl529    时间: 2023-2-7 23:15
还不是模块问题,我用了11的最新精易模块也是这样的。 1675782819000 > 1675782819826  明明是不成立的,却执行了,真是不科学的。
作者: zkl529    时间: 2023-2-7 23:16
zkl529 发表于 2023-2-7 23:06
问题是, 明明是假,为啥还执行呢?

用的最新版模块也是一样的。我用的13位时间戳作比较的。 条件不成立却执行 怪吗
作者: zkl529    时间: 2023-2-7 23:17
凌哥 发表于 2023-2-7 23:05
把两个时间戳也发出来

174 | “现行时间” | 1675782819000 | “设定时间” | 1675782819826
作者: 菜鸟路过    时间: 2023-2-7 23:18
为啥不用去时间间隔捏?
作者: 凌哥    时间: 2023-2-7 23:20
盲猜是你用的破J版易语言,触发了暗桩导致逻辑值颠倒
作者: zkl529    时间: 2023-2-7 23:21
菜鸟路过 发表于 2023-2-7 23:18
为啥不用去时间间隔捏?

没毫秒啊
作者: zkl529    时间: 2023-2-7 23:22
凌哥 发表于 2023-2-7 23:20
盲猜是你用的破J版易语言,触发了暗桩导致逻辑值颠倒

。。。。。。。还有这回事?。。
作者: zkl529    时间: 2023-2-7 23:24
凌哥 发表于 2023-2-7 23:20
盲猜是你用的破J版易语言,触发了暗桩导致逻辑值颠倒

破J版会出现这种情况????????
作者: 骑着王八追兔子1    时间: 2023-2-7 23:27
赋值给变量看看 有可能是这个模块问题
作者: 菜鸟路过    时间: 2023-2-7 23:34
zkl529 发表于 2023-2-7 22:56
我怕我眼花了,我特意复制了,对比,是假,为啥是假,还执行?? ...

那你说  1 > 2  应该是真还是假
作者: zkl529    时间: 2023-2-7 23:37
菜鸟路过 发表于 2023-2-7 23:34
那你说  1 > 2  应该是真还是假

假,但是执行
作者: 菜鸟路过    时间: 2023-2-7 23:38
你这里应该先用变量储存 在执行逻辑,而不是直接用返回值对比
作者: zkl529    时间: 2023-2-7 23:39
小明无敌 发表于 2023-2-7 23:30
直接a=取现行时间戳 然后b=设定时间 如果真的话调试输出a和b 这样来判断

按照你的方法试了,好像是模块有问题。时间戳取的不对
作者: 菜鸟路过    时间: 2023-2-7 23:39
这里的执行顺序是要损耗时间的
作者: 陽陽陽    时间: 2023-2-7 23:44
易语言的一个小问题,遇到过之前
不要直接对比,这样对比:
如果真(时间戳1-时间戳2>0)
    ....
作者: zkl529    时间: 2023-2-7 23:46
小明无敌 发表于 2023-2-7 23:30
直接a=取现行时间戳 然后b=设定时间 如果真的话调试输出a和b 这样来判断

按照你的方法测试了,发现模块取现行时间戳 有问题,取多了,最后一位会显示9999.但是和时间不对应。应该是模块的bug

111.png (102.36 KB, 下载次数: 0)

111.png

作者: zkl529    时间: 2023-2-7 23:48
陽陽陽 发表于 2023-2-7 23:44
易语言的一个小问题,遇到过之前
不要直接对比,这样对比:
如果真(时间戳1-时间戳2>0)

不是这回事,取出来的时间戳 和现行时间不对应。比如现在现行时间 实际是29秒033毫秒,时间_取现行时间戳 ()  取出来的结果有可能是 29秒999毫秒,这种问题有几率出现,不是100%
作者: zkl529    时间: 2023-2-7 23:49
取出来的时间戳 和现行时间不对应。比如现在现行时间 实际是 :29秒033毫秒,但   时间_取现行时间戳 ()  取出来的结果有可能是 29秒999毫秒,这种问题有几率出现,不是100%,循环判断时候会出现这种问题!
作者: 陽陽陽    时间: 2023-2-7 23:50
zkl529 发表于 2023-2-7 23:48
不是这回事,取出来的时间戳 和现行时间不对应。比如现在现行时间 实际是29秒033毫秒,时间_取现行时间戳 ...

不要用精益模块,网上有个用脚本组件取时间戳的例子,用那个
作者: zkl529    时间: 2023-2-7 23:50
大司命 发表于 2023-2-7 23:04
用秒级Unix时间戳就好了!


取出来的时间戳 和现行时间不对应。比如现在现行时间 实际是 :29秒033毫秒,但   时间_取现行时间戳 ()  取出来的结果有可能是 29秒999毫秒,这种问题有几率出现,不是100%,循环判断时候会出现这种问题!

这种能反馈给模块不?




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4