Find the string length of a Lua number?
这里可能是一个简单的问题,但搜索没有找到类似的问题。
#运算符可以找到一个字符串的长度,其中很大的一个。 但是随着Lua是动态类型的,因此没有转换运算符,一个人如何将数字键入为字符串以确定其长度?
例如,假设我要在一个格式化的表格中打印从1到9的阶乘。
1 2 3 4 5 6 | i,F = 1,1 while i<10 do print(i.."! =="..string.rep("0",10-#F)..F) i=i+1 F=F*i end |
错误:尝试获取全局'F'的长度(一个数字值)
为什么不使用
或者,
1 | length = math.floor(math.log10(number)+1) |
不过请注意,这仅在n> 0的情况下有效!
大概有十二种方法可以做到这一点。 最简单的方法是使用Dan提到的
1 2 3 4 5 6 | i,F = 1,1 while i<10 do print(string.format("%01d! == %010d", i, F)) i=i+1 F=F*i end |