2024-12-12 08:00:06

Lua字符串到int

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

我有一个这样的字符串:

a = "10"

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


当前回答

使用tonumber函数。如a = tonumber("10")。

其他回答

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

a=tonumber(S)

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

这是你应该写的

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

output:

20
Lua 5.3.1  Copyright (C) 1994-2015 Lua.org, PUC-Rio
> math.floor("10");
10
> tonumber("10");
10
> "10" + 0;
10.0
> "10" | 0;
10

使用tonumber函数。如a = tonumber("10")。

需要注意的是,math.floor()总是向下舍入,因此对于负浮点值不会产生合理的结果。

例如,表示为整数的-10.4通常会被截断或舍入为-10。然而math.floor()的结果是不一样的:

math.floor(-10.4) => -11

对于使用类型转换的截断,以下辅助函数将工作:

function tointeger( x )
    num = tonumber( x )
    return num < 0 and math.ceil( num ) or math.floor( num )
end

参考:http://lua.2524044.n2.nabble.com/5-3-Converting-a-floating-point-number-to-integer-td7664081.html