如何在Lua中将字符串转换为整数?
我有一个这样的字符串:
a = "10"
我想把它转换成10,这个数字。
如何在Lua中将字符串转换为整数?
我有一个这样的字符串:
a = "10"
我想把它转换成10,这个数字。
当前回答
local a = "10"
print(type(a))
local num = tonumber(a)
print(type(num))
输出
string
number
其他回答
我建议你去Hyperpolyglot看看,它有一个很棒的对比:http://hyperpolyglot.org/
http://hyperpolyglot.org/more#str-to-num-note
ps.实际上Lua转换的是双精度数而不是整型数。
数字类型表示实数(双精度浮点数) 数字。
http://www.lua.org/pil/2.3.html
需要注意的是,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数字类型是双精度类型,在luaconf中实现。H详细说明 一般有两种选择:
[推荐使用]5.3版本的Lua脚本中包含全局变量。Lua文件,其中包括tonumber()和tostring()方法,可以实现数字和字符串的转换。 tointeger()也可以使用此方法将其转换为数字。
但是根据你的实际场景,如果只是为了计算,可以根据这个操作符号来转换Lua。如
s = "1" + 2; -- lua will convert "1" to 1
print(s)
s1 = "e" + 3; -- error
print(s1)
更多关于lua的信息,可以查看lua官方文档
希望对您有用,期待您的回复,期待与您进一步沟通!
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
这是你应该写的
local stringnumber = "10"
local a = tonumber(stringnumber)
print(a + 10)
output:
20