Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

How to add something like 'K' or 'M' for numbers that are large?

Asked by 5 years ago

How do you add 'K' or 'M' after those large numbers?

0
string concatenation theking48989987 2147 — 5y

1 answer

Log in to vote
1
Answered by 5 years ago
Edited 5 years ago

You would do two things:

  • Use tostring() to convert the number to a string.
  • Use the length operator (#) to get the length of the string, and depending on how big the number converted to a string is, apply the letter accordingly. (You would also use string.sub() to get the number to concatenate the letter with, which happens to be either the first, first 2 or first 3 digits of the number.)

Here's an example:

local num = 10000
local str = tostring(num) -- The number as a string
if #str > 3 and #str <= 6 then -- Checks if the number is within the thousands and is said as if it were within the thousands
    if #str == 4 then
        local newstr = string.sub(str, 1, 1)
        local numstr = newstr .. "K+"
    elseif #str == 5 then -- The number I used fits this conditional as it has 5 digits
        local newstr = string.sub(str, 1, 2)
        local numstr = newstr .. "K+"
    elseif #str == 6 then -- The last possible thousand
        local newstr = string.sub(str, 1, 3)
        local numstr = newstr .. "K+"
    end
end

If you're familiar with the length operator for tables (#), it also returns the length of a string. Because what it returns is a number, you can check for the length of this number using comparison symbols.

If you take another look at the code, the variable appears to be constantly reassigned but it actually isn't. The modified string is always a new variable because the local variables newstr and numstr are constantly created (they are nil outside of where they are defined, as they are always in the highest scope).

0
Correction: They are in separate conditionals with separate scopes, so the local variables are nil there. DeceptiveCaster 3761 — 5y
Ad

Answer this question