使用 Lua,我将数字格式化为可变位数并去掉尾随零/小数点,例如
string.format(" %."..precision.."f", value):
gsub("(%..-)0*$", "%1"):
gsub("%.$", "")
值的类型为数字(正数、负数、整数、小数)。
所以任务已经解决了,但出于美学、教育和性能方面的原因,我有兴趣了解是否有一种更优雅的方法 - 可能只使用一个方法gsub()
.
%g
in string.format()
没有选择,因为要避免使用科学记数法。
如果您的精度始终 > 0,则尾随字符保证是以下任一序列0
用于浮标或.
随后的序列0
对于整数。因此,您可以识别并删除这个“预告片”,留下字符串的其余部分:
string.format(" %."..precision.."f", value)
:gsub("%.?0+$", "")
它不会破坏以 0 结尾的整数,因为这些整数在有效的零之后会有浮点,因此它们不会被捕获为“0
就在字符串末尾之前。
如果精度为0,那么你不应该执行gsub
at all.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)