gpt4 book ai didi

serialization - 如何在没有外部库的任何lua中将 double 转换为小字符串表示而不会丢失数据?

转载 作者:行者123 更新时间:2023-12-04 06:05:05 28 4
gpt4 key购买 nike

我想只使用任何 Lua 版本将数字转换为字符串,这样

  • 没有数据丢失(必要!)

  • 字符串表示尽可能小(8 个字节就可以)(可选,不是必需的)
  • 没有使用外部库(必需!)

  • 转换尽可能快(可选,不是必需的)

我不在乎

  • 人类可读性
  • 避免使用特殊字符

我尝试了内置的 tonumber 函数,但它并不总是给出正确的结果:

> print((2+256^6)==(1+256^6))
false
> print(tostring(2+256^6)==tostring(1+256^6))
true

最佳答案

如果你可以使用标准的 Lua 库,试试这些:

x=math.pi

s=string.pack("d",x)
y=string.unpack("d",s)
print(x==y)

s=string.format("%a",x)
y=tonumber(s)
print(x==y)

string.format("%a",x) 在 Lua 5.2+ 中可用。 string.pack 在 Lua 5.3+ 中可用。

关于serialization - 如何在没有外部库的任何lua中将 double 转换为小字符串表示而不会丢失数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51222489/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com