2

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

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

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

但是,我很难在不到处抛出错误的情况下显示实际的百分比符号。

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

4

2 回答 2

9

与 C 中的函数string.format一样printf,当您想要逐字显示时,需要将百分号加倍。对于or函数,情况并非如此!printio.write

所以你当然想要这个:

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

弄清楚了。

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-17T03:46:37.997 回答