Lua format.string 在5.3版本中无法将浮点数格式化为十进制整数(%d)。

最近我从 Lua 5.2.3 升级到了 5.3.1 ,但我发现所有使用 string.format 的脚本,如果尝试使用 %d 来格式化一个 float 类型的值时都会失败。

local anExampleString = string.format("Sample Number: %d",10.100000001) -- 在 5.3.1 上失败,在 5.2.3 上正常
local aWorkingString  = string.format("Sample Number: %.0f",10.100000001) -- 在 5.3.1 上正常

这是设计上的问题吗?我似乎找不到任何文档记录这种变化。

点赞
用户1009479
用户1009479

在 Lua 5.3 中,number 类型有两个子类型,即 integerfloat

来自 string.format

选项 AaEefGg 都需要一个数作为参数。选项 cdiouXx 需要一个整数。

2015-07-23 02:22:35