找到Lua数字的字符串长度?

时间:2011-09-12 20:49:26

标签: lua

这里很容易提出问题,但搜索没有找到类似的问题。

#运算符可以找到字符串的长度,其中包括很好的字符串。但是由于Lua是动态类型的,因此没有转换运算符,如何将数字作为字符串键入以确定其长度?

例如,假设我想在格式化表格中打印1到9的阶乘。

i,F = 1,1
while i<10 do
    print(i.."! == "..string.rep("0",10-#F)..F)
    i=i+1
    F=F*i
end

错误:尝试获取全球&#39; F&#39; (数值)

4 个答案:

答案 0 :(得分:13)

为什么不使用tostring(F)F转换为字符串?

答案 1 :(得分:5)

可能有十几种方法可以做到这一点。简单的方法是使用tostring作为Dan提及。你也可以连接一个空字符串,例如F_str=""..FF_str作为字符串表示形式。但是,由于您尝试输出格式化的字符串,请使用string.format方法为您完成所有艰苦工作:

i,F = 1,1
while i<10 do
    print(string.format("%01d! == %010d", i, F))
    i=i+1
    F=F*i
end

答案 2 :(得分:3)

可替换地,

length = math.floor(math.log10(number)+1)

小心,但这只适用于n&gt; 0!

答案 3 :(得分:0)

Isn&#t; t while tostring(F).len < 10 do有用吗?