如何在Lua中将字符串转换为整数?
我有一个这样的字符串:
a = "10"
我想把它转换成10,这个数字。
如何在Lua中将字符串转换为整数?
我有一个这样的字符串:
a = "10"
我想把它转换成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
其他回答
自从lua 5.3以来,有了一个新的数学。将字符串转换为整数的Tointeger函数。只是整数,没有浮点数。
例如:
print(math.tointeger("10.1")) -- nil
print(math.tointeger("10")) -- 10
如果你想转换整数和浮点数,tonumber函数更合适。
您可以创建一个访问器,以保持其中的“10”为int 10。
例子:
x = tonumber("10")
如果你输出x变量,它将输出一个int 10而不是"10"
和Python进程一样
X = int("10")
谢谢。
可以通过在算术运算中使用字符串(如a= "10" + 0)强制进行隐式转换,但这并不像显式使用tonumber那样清楚或清晰。
需要注意的是,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
local a = "10"
print(type(a))
local num = tonumber(a)
print(type(num))
输出
string
number