这里很容易提出问题,但搜索没有找到类似的问题。
#运算符可以找到字符串的长度,其中包括很好的字符串。但是由于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; (数值)
答案 0 :(得分:13)
为什么不使用tostring(F)
将F
转换为字符串?
答案 1 :(得分:5)
可能有十几种方法可以做到这一点。简单的方法是使用tostring
作为Dan提及。你也可以连接一个空字符串,例如F_str=""..F
以F_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
有用吗?