我正在尝试将一个十进制格式的字符串转换成Lua中的数字。

我有两个整数变量,我想将它们转换为十进制整数。结果应该如下所示:

a = 10
b = 12
c = 10.12

我可以使用连接操作将它们转换为一个字符串十进制数,但是我不能在结果上使用数学函数。我尝试在字符串上使用 tonumber(),但是我得到了一个 nil 值。

点赞
用户3586583
用户3586583

我假设开头的ab是整数,你想要连接它们,以便a是结果数字的整数部分,而b是小数部分——双精度或浮点数中逗号或点号之后的部分。

这是你建议的字符串连接解决方案,对我来说很有效

a = 10
b = 12

c = tonumber(a..'.'..b)
print(c) -- 输出10.12

在这里,我们使用math来计算要分割b以使其成为正确的小数的量,然后将其添加到a。关于确定10的多少次方的代码在这里找到How can I count the digits in an integer without a string cast?

a = 10
b = 12

c = a + b / math.pow(10, b == 0 and 1 or math.floor(math.log(math.abs(b), 10))+1)
print(c) -- 输出10.12
2016-01-20 17:51:43