📅  最后修改于: 2023-12-03 15:02:48.659000             🧑  作者: Mango
当我们需要将一个 Lua 字符串类型转换为数字类型时,可以使用 tonumber()
函数。它接受一个字符串参数并返回相应的数字。如果字符串不能转换为数字,则返回 nil
。
-- 将字符串转换为数字
local num = tonumber("123")
print(num) -- 123
print(type(num)) -- number
-- 如果字符串不能转换为数字,则返回 nil
local num2 = tonumber("abc")
print(num2) -- nil
tonumber()
函数还可以接受一个可选参数,表示要将字符串视为某种进制下的数字进行转换。
-- 将二进制字符串 "101" 转换为数字
local num3 = tonumber("101", 2)
print(num3) -- 5
-- 将十六进制字符串 "FF" 转换为数字
local num4 = tonumber("FF", 16)
print(num4) -- 255
tonumber()
函数可以接受第二个可选参数,用于控制转换结果的精度和行为。常用的参数有两个:
tonumber(string, base)
: 将字符串转换为数字时使用指定的进制。tonumber(string, from, to)
: 将字符串转换为数字时只使用字符串中指定的一段。-- 将字符串 "1234.56" 转换为整数
local num5 = tonumber("1234.56", 10)
print(num5) -- 1234
-- 将字符串 "abc123DEF" 转换为数字
local num6 = tonumber("abc123DEF", 16)
print(num6) -- 288240001187651
-- 将字符串 "12.34" 转换为小数,保留两位小数
local num7 = tonumber("12.34", 10)
print(string.format("%.2f", num7)) -- 12.34
-- 只转换字符串中从第2个字符开始到第5个字符为数字的部分
local num8 = tonumber("a123b", 5, 5)
print(num8) -- 2
以上就是 Lua 字符串转数字的基本用法,通过 tonumber()
函数我们可以方便地将字符串转换为数字。在转换的过程中可以控制进制、精度和行为,以满足我们的需求。