十进制数格式和区域编码

我有一个 Lua 程序,它从字符串中加载数据。我需要使用 tonumber 将这些数据转换为双精度浮点数。问题是,在 Windows 7 的 cygwin 下,如果数字包含小数点 . 而不是逗号 ,,我会得到 nil。如何解决这个问题?

n = tonumber("7.5") -> 得到 nil
n = tonumber("7,5") -> 得到 7.5
点赞
用户107090
用户107090

尝试这样做:

old = os.setlocale("C")  <!--设置当前语言环境为"C"-->
n = tonumber("7.5")  <!--将字符串"7.5"转换为数字类型,并赋值给变量n-->
os.setlocale(old)  <!--恢复原先的语言环境-->
2014-02-15 13:57:27