gpt4 book ai didi

lua - WoW - 在 Lua 中四舍五入到两位小数

转载 作者:行者123 更新时间:2023-12-03 17:51:35 30 4
gpt4 key购买 nike

我试图将我的总经验值显示为四舍五入到两位小数的百分比。我想出了一个解决方案,但它很笨拙。一定有更好的方法。

这是我所拥有的:

local xpPercentage = (((UnitXP("player") / UnitXPMax("player"))*100))
-- 63.4587392473
local xpMantissa = xpPercentage - floor(xpPercentage)
-- .4587392473
local xpTwoDec = (floor(xpMantissa * 100)/100) + floor(xpPercentage)
-- 63.45

同样,这符合我的要求,但是有更漂亮的方法吗?

最佳答案

local formatted = string.format(
"%.2f %%",
UnitXP('player') / UnitXPMax('player') * 100
)

这是标准的 Lua 方法,它也适用于您。
除非 WoW 删除了该功能,否则这很愚蠢。

请注意 type(formatted)是字符串,不是数字。
string.format ,如 manual 中所述, 将格式字符串作为其第一个参数,后跟要拼接到格式字符串中的一系列值。

除了以 % 开头的特殊标记外,格式字符串通常会按字面意思处理。 .附加参数的数量应等于格式字符串中这些标记的数量。

在上面的例子中, %f意思是“在此处插入一个浮点数”;例如, string.format("hello %f world", 5.1")将返回“你好 5.1 世界”。在 % 之后添加东西和之前 f你可以告诉它如何准确地格式化它。

这是使用所有选项的示例: string.format("%x6.2f", 2.264)
从左到右:
  • %标志着开始
  • x告诉它用 xs 向右填充
  • 6告诉它整个内容应该是 5 个字符长
  • .2告诉它四舍五入(或用 0 填充)到 2 个小数位

  • 所以,结果将是 xx2.26
    最后,由于 %在格式字符串中有特殊含义,如果你想要一个文字 % 你必须写 %%反而。

    "%.2f %%"因此意味着:

    一个浮点数,四舍五入或填充到 2 位小数,后跟一个空格和一个百分号。 format 的第二个参数必须是一个数字,否则函数会出错。

    关于lua - WoW - 在 Lua 中四舍五入到两位小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57950030/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com