📜  lua 字符串转数字 - Lua (1)

📅  最后修改于: 2023-12-03 15:02:48.659000             🧑  作者: Mango

Lua 字符串转数字

当我们需要将一个 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() 函数我们可以方便地将字符串转换为数字。在转换的过程中可以控制进制、精度和行为,以满足我们的需求。