warframe tutorial ropa programa nombre for lua

tutorial - Lua cadena a int



lua warframe (9)

La opción más clara es usar tonumber .

A partir de 5.3.2, esta función detectará automáticamente enteros (firmados), flotantes (si hay un punto presente) y hexadecimales (tanto enteros como flotantes, si la cadena comienza por "0x" o "0X").

Los siguientes fragmentos son más cortos pero no equivalentes:

  • a + 0 -- forces the conversion into float, due to how + works

  • a | 0 -- (| is the bitwise or) forces the conversion into integer. --However, unlike math.tonteger, it errors if it fails

¿Cómo puedo convertir una cadena a un entero en Lua? Gracias.

Tengo una cadena como esta:

a = "10"

Me gustaría que se convierta en 10, el número.


Puede forzar una conversión implícita utilizando una cadena en operaciones aritméticas como a a= "10" + 0 , pero esto no es tan claro o tan limpio como usar tonumber explícitamente.


Puede hacer un acceso para mantener el "10" como int 10 en él.

Ejemplo:

x = tonumber("10")

si imprime la variable x, obtendrá un int 10 y no un "10"

lo mismo que el proceso de Python

x = int ("10")

Gracias.



Todos los números en Lua son flotadores ( edición: Lua 5.2 o menos). Si realmente desea convertir a "int" (o al menos replicar este comportamiento), puede hacer esto:

local function ToInteger(number) return math.floor(tonumber(number) or error("Could not cast ''" .. tostring(number) .. "'' to number.''")) end

En ese caso, convierte explícitamente la cadena (o realmente, lo que sea) en un número, y luego trunca el número como lo haría un molde (int) en Java.

Editar: Esto todavía funciona en Lua 5.3, incluso si Lua 5.3 tiene enteros reales, ya que math.floor() devuelve un entero, mientras que un operador como el number // 1 todavía devolverá un flotante si el number es un flotante.



aquí es lo que debes poner

local stringnumber = "10" local a = tonumber(stringnumber) print(a + 10) output: 20


di que la cadena que quieres convertir en un número está en la variable S

a=tonumber(S)

siempre que haya números y solo números en S devolverá un número, pero si hay algunos caracteres que no son números (excepto períodos para flotantes) devolverá nulo


local a = "10" print(type(a)) local num = tonumber(a) print(type(num))

Salida

string number