我最近从 Lua 5.2.3 升级到 5.3.1,但我注意到如果尝试格式化 float
,所有执行 string.format
的脚本都会开始失败使用%d
local anExampleString = string.format("Sample Number: %d",10.100000001) -- Fails on 5.3.1, works on 5.2.3
local aWorkingString = string.format("Sample Number: %.0f",10.100000001) -- Works on 5.3.1
这是设计使然吗?我似乎找不到任何地方记录的更改。
最佳答案
在Lua 5.3中,number
类型有两个子类型,integer
和float
。
Options
A
,a
,E
,e
,f
,G
, andg
all expect a number as argument. Optionsc
,d
,i
,o
,u
,X
, andx
expect an integer.
关于string - 从 5.3 开始,Lua format.string 无法将 float 格式化为十进制 (%d),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31577104/