gpt4 book ai didi

lua - 大 lua 数字打印不正确

转载 作者:行者123 更新时间:2023-12-04 14:26:26 25 4
gpt4 key购买 nike

我有以下测试用例:

Lua 5.3.2  Copyright (C) 1994-2015 Lua.org, PUC-Rio
> foo = 1000000000000000000
> bar = foo + 1
> bar
1000000000000000001
> string.format("%.0f", foo)
1000000000000000000
> string.format("%.0f", bar)
1000000000000000000

最后一行应该是 1000000000000000001,因为这是 bar 的值,但由于某种原因它不是。这不仅适用于 1000000000000000000,我还没有找到另一个能给出正确值的数字。谁能解释为什么会发生这种情况?

最佳答案

您将数字格式化为 float ,而不是整数。这就是 %.0f 正在做的事情。在某些时候, float 会失去精度。例如,double 会在大约 16 位十进制数字后失去精度。

如果要将整数格式化为整数,则需要将其格式化为整数,使用 standard printf rules :

string.format("%i", bar)

关于lua - 大 lua 数字打印不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36680275/

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