Spanish Necesito convertir una cadena de caracteres a números

Discussion in 'Spanish Forum' started by ocalle, May 17, 2018.

  1. ocalle

    ocalle Active Member Licensed User

    Hola a todos, tengo una variable del tipo string y necesito convertirla a numeros decimales para poder hacer operaciones matematicas, Hay una forma sencilla?

    Ej
    Code:
    Dim cadena as string
    Dim nro as int
    cadena=
    "1298398984"
    ´y con la conversion puedo por ejemplo multiplicar
    nro=xxxx(cadena)

    nro= nro * 
    1.31415
    desde ya muchas gracias
     
  2. cas6678

    cas6678 Active Member Licensed User

    nro=cadena

    Previamente habras tenido que verificar que cadena sea un numero y que no tenga caracteres no numericos

    Code:
    if isnumber(cadena) then
       nro=cadena
    else
       
    log"no es un numero"
    end if
    Posiblemente haya alguna opcion mejor. ;)
     
    ocalle likes this.
  3. Vania Contreras

    Vania Contreras Member Licensed User

    ocalle likes this.
  4. rscheel

    rscheel Well-Known Member Licensed User

    Solo eso

    Code:
    Dim Numeros As Int

    Numeros = cadena
     
    ocalle likes this.
  5. cas6678

    cas6678 Active Member Licensed User

    Si no recuerdo mal porque estoy hablando de memoria si en la cadena hay algo mas que numeros o no hay nada te da error. Por ejemplo si la cadena es ""
     
    ocalle likes this.
  6. JCO

    JCO Member Licensed User

    Cuidado con los decimales. Si en la cadena de texto el separador de decimales es la coma, la conversión no funcionará correctamente. Antes de dar los pasos que han sugerido los compañeros, sustituye las comas por puntos:

    Code:
    cadena = cadena.Replace(","".")
     
    ocalle likes this.
  7. rscheel

    rscheel Well-Known Member Licensed User

    Funciona correctamente, solo si lo vas a multiplicar un numero entero con un decimal, la variable que reciba el resultado debe ser un Double no un int.

    Code:
    Dim Numero As Int
    Dim Cadena As String = "1298398984"

    Numero = Cadena
    Log("Resultado: "& (Numero * 1.31415))

    'Resultado: 1.7062910248235998E9
     
    ocalle likes this.
  8. cas6678

    cas6678 Active Member Licensed User

    Creo que no nos estamos entendiendo. Si que funciona. Solo digo que hay que tomar la precaucion que la cadena no venga con algo no numerico como "1234AB"
     
  9. rscheel

    rscheel Well-Known Member Licensed User

    Claro que si, pero el ejemplo de el solo son numero, no trae letras ni puntos ni comas, si ya busca convertir letras a números o extraer las letras de los números o validar la cadena es otro tema.
     
  10. ocalle

    ocalle Active Member Licensed User

    Hola a todos gracias por el soporte, tuve que dimensionar numero como double para que maneje los decimales, lo que estaba obteniendo es la memoria disponible en el telefono, asi me funciona

    Code:
    OS.Initialize("")
    Dim numero As Double


    numero=OS.AvailableExternalMemorySize

        lbl3.Text=(numero  / 
    1000000000) & " mem ext libre"
     
    cas6678 likes this.
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice