string - 从 5.3 开始,Lua format.string 无法将 float 格式化为十进制 (%d)

标签 string lua string.format lua-5.3

我最近从 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类型有两个子类型,integerfloat

来自string.format

Options A, a, E, e, f, G, and g all expect a number as argument. Options c, d, i, o, u, X, and x expect an integer.

关于string - 从 5.3 开始,Lua format.string 无法将 float 格式化为十进制 (%d),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31577104/

相关文章:

java - 删除java字符串中的字符

c# - 从字符串前面读取单个 int 的最简单方法

parsing - 使用什么类型的语法来解析 Lua?

web-config - (ASP.NET)可以在web.config键/值上执行String.Format吗?

java - 在replaceAll中以编程方式获取捕获组

c++ - 可以更改 std::string 容量以进行优化吗?

lua - 如何使用快捷方式重新加载用 lua 编写的 Neovim 配置?

Lua string.gsub 里面的 string.gmatch?

java - 如何格式化像#.#.#.#这样的字符串

python - 如何格式化具有给定精度和零填充的 float ?