在Lua中是否有一种方法使用字符串值使数字超过整数的最大值?

我在谈论rbx.Lua,如果你不熟悉它,请不要试图回答这个问题

function ConvertShort(num, cool)
    local x = tostring(num)
    if #x >= 16 then
        local important = (#x - 15)
        cool.Value = x:sub(0,(important)).."."..(x:sub(#x-13,(#x-13))).."qd"
    elseif #x >= 13 then
        local important = (#x-12)
        cool.Value = x:sub(0,(important)).."."..(x:sub(#x-10,(#x-10))).."T"
    elseif #x>= 10 then
        local important = (#x - 9)
         cool.Value = x:sub(0,(important)).."."..(x:sub(#x-7,(#x-7))).."B"
    elseif #x >= 7 then
        local important = (#x-6)
        cool.Value = x:sub(0,(important)).."."..(x:sub(#x-5,(#x-5))).."M"
    elseif #x >= 4 then
        cool.Value =  x:sub(0,(#x-3)).."."..(x:sub(#x-2,(#x-2))).."k"
    end
end

game.Players.PlayerAdded:connect(function(plr)
    local cash = Instance.new("StringValue", plr)
    cash.Name = "cash"
    cash.Value = "0"
    cash.Changed:connect(function()
            ConvertShort(tonumber(cash.Value), cash)
    end)
end)

当它到达千万亿时,它显示的数字类似于1e + 1.1k,并不是我需要的样子,我不知道如何修复它,甚至是否有方法。

点赞
用户1847592
用户1847592

将以下代码:

local x = tostring(num)

替换为:

local x = ""
while num >= 1000000 do
  x, num = x.."0", math.floor(num / 10)
end
x = tostring(num)..x
2016-05-14 02:17:01
用户282536
用户282536

将下面翻译成中文并且保留原本的 markdown 格式,

local x = tostring(num)

替换为

local x = string.format("%.0f", num)
2016-05-16 04:53:09