在Lua的string.format中返回一个百分号。

在我为一个在线游戏开发的修改脚本中,我试图显示一个数字的当前百分比。

function()
    local z = math.max(0, UnitPower("player")) / math.max(1, UnitPowerMax("player")) * 100;
    return string.format("%.f", z);
end

上面的代码可以正确显示百分比。

然而,我很难把实际的百分号显示出来而不出现错误。

我尝试在结束函数之前或之后添加 print("%%") ,但似乎不起作用。

点赞
用户88888888
用户88888888

搞定了。

function()
    local z = math.max(0, UnitPower("player")) / math.max(1, UnitPowerMax("player")) * 100;
    return string.format("%.f", z) .. "%%";
end

只需添加 .. "%%",即可显示 **100%**(其中 100 是当前百分比)。

超级晚的编辑:

这是在视频游戏《魔兽世界》的插件中输入自定义代码的一部分,这是我想要实现目标的解决方案,因为作者在 "自定义代码 "输入周围调用了 string.format()。 有关标准 Lua 解决方案,请参考此问题的其他答案。

2012-10-17 03:46:37
用户1008957
用户1008957

函数string.format,就像在C语言中的printf函数一样,在要保留百分号时需要将百分号重复一次。但是对于printio.write函数,这种情况则与之相反。

因此,您肯定想要这样做:

function()
  local z = math.max(0, UnitPower("player")) / math.max(1, UnitPowerMax("player")) * 100;
  return string.format("%.f %%", z);
end
2012-10-17 05:25:29