注意Lua中的 tostring()和 tonumber()是依赖于语言环境的。知道如何在不使用 tonumber()的情况下将字符串转换为数字?感谢。
e.g。转换字符串" -58.5"到-58.5
当我尝试将带点的数字传递给函数时,该函数会转换"。"到","自动。你通常如何解决这类问题?
功能测试(num) 打印(NUM) 端
测试(-58.5) - 它打印-58,5
答案 0 :(得分:3)
test
函数的结果本身与语言环境有关。 (在我的机器上使用默认设置,我得到-58.5
的结果,因为我的语言环境是en_US.UTF-8
。)
您应该可以通过os.setlocale
设置您喜欢的区域设置。这可能比编写自己的tonumber
函数更简单。
例如:
local function nshow(n) print(n) end
local n = -58.5
print(os.setlocale("de_DE.UTF-8"))
nshow(n)
print(os.setlocale("C"))
nshow(n)
输出:
de_DE.UTF-8
-58,5
C
-58.5