2024-12-12 08:00:06

Lua字符串到int

如何在Lua中将字符串转换为整数?

我有一个这样的字符串:

a = "10"

我想把它转换成10,这个数字。


当前回答

可以通过在算术运算中使用字符串(如a= "10" + 0)强制进行隐式转换,但这并不像显式使用tonumber那样清楚或清晰。

其他回答

这是你应该写的

local stringnumber = "10"
local a = tonumber(stringnumber)
print(a + 10)

output:

20

自从lua 5.3以来,有了一个新的数学。将字符串转换为整数的Tointeger函数。只是整数,没有浮点数。

例如:

print(math.tointeger("10.1")) -- nil
print(math.tointeger("10")) -- 10

如果你想转换整数和浮点数,tonumber函数更合适。

假设你想转化为数字的字符串在变量S中

a=tonumber(S)

如果S中有数字且只有数字,它将返回一个数字, 但如果有任何字符不是数字(浮点数的句点除外) 它会返回nil

我建议你去Hyperpolyglot看看,它有一个很棒的对比:http://hyperpolyglot.org/

http://hyperpolyglot.org/more#str-to-num-note

ps.实际上Lua转换的是双精度数而不是整型数。

数字类型表示实数(双精度浮点数) 数字。

http://www.lua.org/pil/2.3.html

local a = "10"
print(type(a))
local num = tonumber(a)
print(type(num))

输出

   string                                                                                                                                                                          
   number