首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于Redis的lua脚本中的时间(纳秒)

用于Redis的lua脚本中的时间(纳秒)
EN

Stack Overflow用户
提问于 2020-12-30 10:27:48
回答 1查看 553关注 0票数 0

我在redis中运行一个lua脚本,如下所示:

eval“返回字符串(tonumber(ARGV1))”0 1538409827183989630

它应该返回1538409827183989630,但是返回这个1.538409827184e+18,它将掉下最后几个纳米秒数(它是一个以纳米秒为单位的时间戳)。

假设我需要纳米秒的精度,那么正确的方法是什么,因为我在比较时间戳。

EN

回答 1

Stack Overflow用户

发布于 2020-12-30 12:43:25

Lua数字有两个子类型,整数和浮点数,Lua自动选择。

少有的(如果不是唯一的话)需要关注这种差异的情况之一是当您想要将一个数字转换为一个字符串时。

print(1538409827183989630)将打印1538409827183989630

print(1538409827183989630.0)将打印为1.538409827184e+18

如果要确保得到相同的输出,则必须显式地格式化字符串。

代码语言:javascript
复制
local int = 1538409827183989630
local float = 1538409827183989630.0

print(string.format("%d", int))
print(string.format("%d", float))

产出:

代码语言:javascript
复制
1538409827183989630
1538409827183989504

您将注意到,由于浮点->整数转换,这两个数字之间会有差异。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65505477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档