如何在Lua中将字符串转换为整数?
我有一个这样的字符串:
a = "10"
我想把它转换成10,这个数字。
如何在Lua中将字符串转换为整数?
我有一个这样的字符串:
a = "10"
我想把它转换成10,这个数字。
当前回答
Lua中的所有数字都是浮点数(编辑:Lua 5.2或以下)。如果你真的想转换为“int”(或者至少复制这个行为),你可以这样做:
local function ToInteger(number)
return math.floor(tonumber(number) or error("Could not cast '" .. tostring(number) .. "' to number.'"))
end
在这种情况下,您可以显式地将字符串(或者实际上,无论它是什么)转换为一个数字,然后截断该数字,就像Java中的(int)强制转换一样。
编辑:这在Lua 5.3中仍然有效,即使Lua 5.3有实整数,因为math.floor()返回一个整数,而如果number是一个浮点数,那么像number // 1这样的操作符仍然会返回一个浮点数。
其他回答
您可以创建一个访问器,以保持其中的“10”为int 10。
例子:
x = tonumber("10")
如果你输出x变量,它将输出一个int 10而不是"10"
和Python进程一样
X = int("10")
谢谢。
local a = "10"
print(type(a))
local num = tonumber(a)
print(type(num))
输出
string
number
使用tonumber函数。如a = tonumber("10")。
这是你应该写的
local stringnumber = "10"
local a = tonumber(stringnumber)
print(a + 10)
output:
20
Lua中的所有数字都是浮点数(编辑:Lua 5.2或以下)。如果你真的想转换为“int”(或者至少复制这个行为),你可以这样做:
local function ToInteger(number)
return math.floor(tonumber(number) or error("Could not cast '" .. tostring(number) .. "' to number.'"))
end
在这种情况下,您可以显式地将字符串(或者实际上,无论它是什么)转换为一个数字,然后截断该数字,就像Java中的(int)强制转换一样。
编辑:这在Lua 5.3中仍然有效,即使Lua 5.3有实整数,因为math.floor()返回一个整数,而如果number是一个浮点数,那么像number // 1这样的操作符仍然会返回一个浮点数。