我试图将十进制格式的字符串转换为lua中的数字

时间:2016-01-20 17:07:12

标签: string lua int

我有2个整数变量,我想要转换为十进制整数。结果应该是这样的:

a = 10 
b = 12
c = 10.12

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

1 个答案:

答案 0 :(得分:1)

我假设在开头ab是整数,你想加入它们,以便a是结果数的整数部分,b是小数部分 - 双数或浮点数中逗号或点后面的部分。

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

a = 10
b = 12

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

这里我们使用数学来计算除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) -- prints 10.12