jeffry4 Posted August 2, 2014 Share Posted August 2, 2014 Buenas a todos. A ver, quiero hacer esto: local ntest = 0000 local id = 32 local suma = id + ntest local suma = tonumber(suma) El problema es que al hacer eso, quiero que suma fuera 0032, y sin embargo, MTA me quita los 0 y me lo deja en 32. Link to comment
Alexs Posted August 2, 2014 Share Posted August 2, 2014 (edited) Buenas a todos. A ver, quiero hacer esto:local ntest = 0000 local id = 32 local suma = id + ntest local suma = tonumber(suma) El problema es que al hacer eso, quiero que suma fuera 0032, y sin embargo, MTA me quita los 0 y me lo deja en 32. Como numero, '0032' es igual a '32', por ende, se ignoran los cero. Si buscas añadir un cero en la izquierda del numero utiliza 'tostring' y manipulalo como un string. function addZero( number, size ) local number = tostring( number ) local number = #number < size and ( ('0'):rep( size - #number )..number ) or number return number end El primer argumento es el numero que quieras modificar, el segundo es el tamaño final del string, por ejemplo: addZero( 58, 3 ) --OUTPUT: 058 addZero( 1, 8 ) --OUTPUT: 00000001 addZero( 854, 1 ) --OUTPUT: 854 Edited August 2, 2014 by Guest Link to comment
RottenFlesh Posted August 2, 2014 Share Posted August 2, 2014 Primero. Para que usas tonumber? si estas sumando dos números, el resultado siempre va ser un numero. Incluso, si tu sumas un numero con un string, el resultado va a ser un numero también. Si quieres comprobarlo puedes hacer esto: outputChatBox(type( 5 + 5 )) -- > esto te da numero outputChatBox(type( 5 + "10" )) -- > esto te da numero tambien okey, y para agregar los ceros puedes hacer algo así: local ntest = "0000" -- aca pon los ceros que quieras local id = 32 local ntest_digitos = string.len(ntest) -- con esto obtenemos el numero de ceros local id_digitos = string.len(id) -- y con esto el numero de digitos de la id if id_digitos < ntest_digitos then id = string.sub(ntest, 1, ntest_digitos - id_digitos) .. id end outputChatBox(id) de esta forma puedes poner la cantidad de ceros que quieras, pero recuerda que al final te resultará un string, si lo conviertes de nuevo a numero se le borrarán esos ceros. Link to comment
Recommended Posts