在我为在线游戏开发的修改脚本中,我试图显示一个数字的当前百分比。
function()
local z = math.max(0, UnitPower("player")) / math.max(1, UnitPowerMax("player")) * 100;
return string.format("%.f", z);
end
上面的代码正确显示了百分比。
但是,我很难让实际的百分号显示出来而不会在任何地方出现错误。
我在结束函数之前以及函数之后尝试添加print("%%")
,但它似乎不起作用。
答案 0 :(得分:8)
函数string.format
与C中的printf
一样,要求百分号在您逐字逐句时加倍。对于print
或io.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
解决方案,请参阅此问题的其他答案。