开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 3984|回复: 7
收起左侧

[已回应] 精易模块 时间_取现行时间戳

[复制链接]
发表于 2023-1-24 23:13:26 | 显示全部楼层 |阅读模式   湖北省武汉市
本帖最后由 RunAway 于 2023-1-24 23:13 编辑

模块版本:10.4.5
所用系统:win11
命令名称:时间_取现行时间戳
BUG描述:返回错误的浮点数文本

@项目部004

说起来其实多年前就遇到过这个bug,当时我用来做时间判断的
用的 到长整数(时间_取现行时间戳(假)) 对比之前记录值 来判断时间经过了多少毫秒
结果总是触发一个奇怪的bug 就是新时间戳的值居然比旧时间戳的值要小 导致报错各种问题
当时没找到原因 就没想那么多 直接简单粗暴直接*1000完事

而今天敲代码又出现了这个bug 调试了好久也没找到问题所在 一编译出来就报错。。

简单的写了个测试代码 终于找出了问题所在,以下是测试代码
报错截图.jpg

这个bug本来就是个小问题,坑就坑在 调试的时候根本就不会出问题 直接用易语言编译和静态编译也不会,只要一用黑月编译立马就出问题

正好之前看过一篇文章说浮点数精度丢失问题 这个值一看就是典中典

翻开精易模块源码 一眼就看出了问题所在 就是这个取时间间隔的双精度浮点数转换的时候 变成了 1674524806.000001 解决办法到文本之前先到长整数即可
精易模块源码.jpg 取时间间隔返回的双精度小数.jpg

修改之后再次编译运行,问题完美解决

以下是修复版本的代码   (仅修复原本代码中的bug。模块里其实有更好的取时间戳命令比如 时间_取现行时间戳1() )

  
子程序名返回值类型公开备 注
时间_取现行时间戳文本型 生成一个13位或者10位的现行时间戳,默认生成13位时间戳。13位:1325252169718,10位:1325252169
参数名类 型参考可空数组备 注
是否取十位时间戳逻辑型本参数为真时,将生成10位时间戳返回
变量名类 型静态数组备 注
时间b精易_时间 
返回值文本型 
毫秒数文本型 
时间a文本型 
GetLocalTime (时间b)
毫秒数 = 取重复文本 (3 - 取文本长度 (到文本 (时间b.毫)), “0”)到文本 (时间b.毫)
时间a = 到文本 (到长整数 (取时间间隔 (取现行时间 (), 到时间 (“1970-01-01 08:00:00”), #秒 )))
返回值 = 时间a + 毫秒数
判断 (是否取十位时间戳)
返回值 = 取文本左边 (返回值, 10)
判断循环首 (取文本长度 (返回值) < 10)
返回值 = 返回值 + “0”
判断循环尾 ()
返回 (返回值)
判断循环首 (取文本长度 (返回值) < 13)
返回值 = 返回值 + “0”
判断循环尾 ()
返回 (返回值)



点评

哪里极限了。不是每次都会返回错误值,测试代码里的循环只是为了保证测试时能顺利触发bug。   湖北省武汉市  发表于 2023-1-25 23:31
你这种极限的操作真的靠谱不,应该不叫bug加极限值吧   广东省肇庆市  发表于 2023-1-25 03:23

签到天数: 8 天

发表于 2023-3-16 09:43:07 | 显示全部楼层   广东省珠海市
可惜 这里表明 还是未能修复全部BUG https://bbs.125.la/forum.php?mod=viewthread&tid=14766509
回复 支持 反对

使用道具 举报

签到天数: 4 天

 楼主| 发表于 2023-2-1 14:45:38 | 显示全部楼层   湖北省武汉市
更新下后续情况吧,实际上取时间间隔返回值带小数点是黑月的bug。
之前一直用的论坛里发布的黑月3.7.7.4。
现在加了黑月群之后下载了测试版的黑月4.1.7.7 已经修复了,目前测试问题不会再出现了。
回复 支持 反对

使用道具 举报

发表于 2023-1-29 11:33:24 | 显示全部楼层   广东省揭阳市

时间_取现行时间戳1
回复 支持 反对

使用道具 举报

结帖率:100% (35/35)

签到天数: 6 天

发表于 2023-1-25 11:05:47 | 显示全部楼层   湖北省恩施土家族苗族自治州
楼上的哪儿都有你
回复 支持 反对

使用道具 举报

结帖率:95% (84/88)

签到天数: 3 天

发表于 2023-1-24 23:53:47 | 显示全部楼层   美国
大佬啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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