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

时间:2012-10-17 03:08:26

标签: lua

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

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

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

但是,我很难让实际的百分号显示出来而不会在任何地方出现错误。

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

2 个答案:

答案 0 :(得分:8)

函数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

答案 1 :(得分: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解决方案,请参阅此问题的其他答案。