elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  STRING---INTEGER
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: STRING---INTEGER  (Leído 1,991 veces)
PETTETE

Desconectado Desconectado

Mensajes: 127


Ver Perfil
STRING---INTEGER
« en: 29 Marzo 2017, 12:02 pm »

Hola buenas,

si tengo la opción "option strict = off"
me haria falta poner el "CInt" para pasar de string a integer?

ejemplo

i=CInt(val("10 * 25"))

o solo con poner

i= val("10*25" ) sería suficiente?

gracias.

Un saludo de vuestro amigo y vecino,
PETETE;)


En línea

UN SALUDO DE VUESTRO AMIGO Y VECINO,
PETETE;)
fary


Desconectado Desconectado

Mensajes: 1.075



Ver Perfil WWW
Re: STRING---INTEGER
« Respuesta #1 en: 29 Marzo 2017, 14:31 pm »

Hola,

Código
  1. CInt(Val("10 * 25"))

Esto en concreto no te lo va a convertir en entero, ya que ningún numero contiene un '*'.

Sería así:

Código
  1. Dim i As Integer
  2.  
  3. Dim n1, n2 As Integer
  4.  
  5. n1 = Val("10")
  6. n2 = Val("25")
  7.  
  8. i = CInt(n1 * n2)

Visual Basic nos hace muchas conversiones automaticamente, aunque esto no debería ser motivo para que nosotros no hagamos las conversiones correctamente, recuerda que en la mayoría de los lenguajes la vas a tener que hacer....

Para que te hagas una idea, con este codigo tendrías el mismo resultado:

Código
  1. Dim i As Integer
  2.  
  3. Dim n1, n2 As Integer
  4.  
  5. n1 = "10"
  6. n2 = "25"
  7.  
  8. i = n1 * n2
  9.  
  10. MsgBox i


Incluso nos vuelve a convertir el numero en cadena para poder hacer el MsgBox... Se puede, SI, pero no es lo mas recomendable.

saludos.


« Última modificación: 29 Marzo 2017, 14:35 pm por fary » En línea

Un byte a la izquierda.
okik


Desconectado Desconectado

Mensajes: 462


Ver Perfil
Re: STRING---INTEGER
« Respuesta #2 en: 2 Abril 2017, 11:24 am »

Para empezar si pones:
Código:
i=CInt(val("10 * 25"))
suponiendo que  i sea String, estás pasando Integer a String y no al revés.

Val devolvería el primer valor númerico de la cadena

Que yo sepa NO EXISTE 'Option Strict On/Off' en VB6, pero SÍ en VB.NET

Con Option Strict Off puedes pasar Integer a String sin preblemas.
Código
  1. Option Strict Off
  2. Module Module1
  3.  
  4.    Sub Main()
  5.        Dim Valor As String = Val("10 * 25")
  6.        Console.WriteLine(Valor)
  7.        Console.ReadLine()
  8.    End Sub
  9.  
  10. End Module
  11.  

Si lo que quieres es resolver la ecuación, se me ocurre así

Código
  1.        Dim Valor As String = "10 * 25"
  2.        Dim t() As String
  3.        t = Valor.Split({" "}, StringSplitOptions.RemoveEmptyEntries)
  4.         If Char.IsNumber(t(0)) And Char.IsNumber(t(2)) Then
  5.        Console.WriteLine(t(0) * t(2))
  6.        End If
  7.        Console.ReadLine()
  8.  



Para otros operadores:

Código
  1.  Dim Valor As String = "10 - 25"
  2.        Dim t() As String
  3.        t = Valor.Split({" "}, StringSplitOptions.RemoveEmptyEntries)
  4.            If Char.IsNumber(t(0)) And Char.IsNumber(t(2)) Then
  5.            Select Case t(1)
  6.                Case "*" : Console.WriteLine(t(0) * t(2))
  7.                Case "/" : Console.WriteLine(t(0) / t(2))
  8.                Case "+" : Console.WriteLine(CInt(t(0)) + CInt(t(2)))
  9.                Case "-" : Console.WriteLine(t(0) - t(2))
  10.            End Select
  11.        End If
  12.        Console.ReadLine()
« Última modificación: 2 Abril 2017, 11:52 am por okik » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines