【发布时间】:2021-04-06 20:52:21
【问题描述】:
我正在 redis 中运行一个 lua 脚本,如下所示:
eval "return tostring(tonumber(ARGV[1]))" 0 1538409827183989630
应该返回1538409827183989630,但返回的是1.538409827184e+18,它正在删除最后几个纳秒数字(它的时间戳以纳秒为单位)
假设我需要纳秒精度因为我正在比较时间戳,那么正确的方法是什么..
【问题讨论】:
-
ARGV[1]是什么类型?在将其转换为字符串之前,是否真的有必要将其转换为数字?如果你想要一个特定的格式,你应该使用string.format明确地格式化你的字符串 -
是的,我需要把它转换成整数做比较(上面的例子中没有显示,因为它是不相关的)然后作为字符串返回