Autor
|
Tema: como tomar la parte de un numero de dos digitos (Leído 4,909 veces)
|
luis456
Desconectado
Mensajes: 551
|
Hola a Todos Despues de algun tiempo he vuelto a este vicio de programar jeje pero ando muy quemado ;( lo que quiero hacer es que a un número de dos dígitos tomar solo uno de ellos : explico tengo unos texbox donde introdusco estos numeros: ReadOnly Property Num1 As Int32 Get Return CInt(TextBox1.Text) End Get End Property
se supone que de ahi va para la función que paso por estos números etc etc .lo que quiero es modificar que si pongo por ejemplo el numero 20 pueda solo tomar el de la derecha o sea el 0 o viceversa ,esto lo envio a una variable l: Result1 = {Num1 + 1, Num1 + 3} _ .Distinct().ToArray ' Elimino duplicados
He probado en propiedades del texbox pero no es lo que quiero ,quiero es fracionar el numero sea al derecho o la isquierda saludos Luis
|
|
« Última modificación: 24 Marzo 2020, 08:24 am por luis456 »
|
En línea
|
Que tu sabiduria no sea motivo de Humillacion para los demas
|
|
|
EdePC
|
Saludos, - Jeje acabo de descargarme el Visual Basic Express 2005 para hacer la prueba XD: http://go.microsoft.com/fwlink/?linkid=57033- Lo cierto es que lo más habitual es ver que usan aritmética sencilla para obtener rangos numéricos si se están trabajando números, por ejemplo si tengo el número 32 y quiero el 2, pues le saco el módulo (resto) de 10: 2 = 32 % 10 - Si quiero el 3, divido el 32 entre 10 y le substraigo el módulo 3 = 32 / 10 - ( ( 32 % 10 ) / 10 ) -- Puedes ahorrarte la resta y simplemente dividir si conviertes el resultado a Entero Public Class Form1 Private Sub btnCalc_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnCalc.Click Dim num As Integer = txtNum.Text txtDer.Text = num Mod 10 txtIzq.Text = num / 10 - ((num Mod 10) / 10) End Sub End Class
- Otra opción es usar las funciones predefinidas para tratar texto, en este caso Substring: Public Class Form1 Private Sub btnCalc_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnCalc.Click txtDer.Text = txtNum.Text.Substring(1, 1) txtIzq.Text = txtNum.Text.Substring(0, 1) End Sub End Class
|
|
|
En línea
|
|
|
|
**Aincrad**
|
Facilmente Conviertes el texto del Textbox a un Char Array y lo recorres con un For . 1) El textbox solo tendrá números de 2 dígitos? , si contiene mas de 2 dijitos entoces le metes un IF comprobando el ARRAY.COUNT. te pongo un Ejemplo : Dim NumerodeIzquierda As String = String.Empty Dim NumerodeDerecha As String = String.Empty 'Obtenemos Texto Dim Numeros As String = TextBox1.Text 'Convertimos en un Array Dim TextArray() As Char = Numeros.ToArray Dim Check As Integer = 0 ' Recorremos. For Each Numero As Char In TextArray If TextArray.Count = 2 Then If Check = 0 Then NumerodeIzquierda = Numero.ToString Check = 1 ElseIf Check = 1 Then NumerodeDerecha = Numero.ToString Check = 2 End If End If Next
Bueno esto seria un solución rapida, como especificaste Te separa los dos números . Ej : Con el numero 32 te deja ; NumerodeIzquierda = 3
NumerodeDerecha = 2 Recuerda que esto es en caso de que el numero sea solo de 2 dígitos, bueno aunque si modificas un toke lo ajustas a tus necesidades. Mi Forma de Hacer Fácilmente lo que pides seria esta: Dim Numeros As String = TextBox1.Text ' Obtenemos Texto del textbox en este caso seria 32 msgbox(Numeros(0)) ' Asi obtienes el Primer numero, en este caso es el 3 msgbox(Numeros(1)) ' Asi obtienes el Segundo numero, en este caso es el 2
en este caso es casi lo mismo que te puso el Compañero @EdePC . la diferencia es que ahi el esta tomando el numero en modo de rango (yo lo usaria para una gran cantidad de digitos ) : txtDer.Text = txtNum.Text.Substring(1, 1) txtIzq.Text = txtNum.Text.Substring(0, 1) Para aplicarlo a tan solo 2 dígitos solo tomo el numero por posición como te mostré anteriormente.
No mames @EdePC , Ahora le entras a vb.net .
|
|
« Última modificación: 11 Febrero 2020, 22:17 pm por **Aincrad** »
|
En línea
|
|
|
|
luis456
Desconectado
Mensajes: 551
|
Gracias a los dos por sus aporte ,probare los metodos,pero claro programo por ahora lo fines de semana,ya que trabajo fuera de casa toda la semana y este portatil no tira bien jeje y para programar no vale
Ya os contare como fue cuando llegue a casa
Saludos Luis
|
|
|
En línea
|
Que tu sabiduria no sea motivo de Humillacion para los demas
|
|
|
EdePC
|
... y este portatil no tira bien jeje ... - Por eso me descargué la versión 2005 XD. Al cabo es para hacer cositas sencillitas.
|
|
|
En línea
|
|
|
|
Serapis
|
Veamos de entrada si tienes una cifra de 0 a 99, es decir de dos cifras, basta con usar un tipo de datos byte.
Segundo, obtener cualquier dígito de un número es algo trivial, ya son matemáticas de niños de 10 años.
La función módulo (resto de una división) en un valor decimal pué sse queda con la última cifra dle valor: 123 modulo 10 = 3 para quedarse con la cifra del medio. Primero hay que saber si queremos acceder a ella solo tras haber tomado el las unidades o directamente. - Si ya hemos tomado las unidades, para tomar las decenas, recurridmoa las matemáticas, haciendo una división que se quede solo con la parte entera: 123 / 10 = 12'3 la parte entera en 12, que en programación (VB) puede hacerse con 123 \ 10 = 12 ahora como el 2 son las unidades, procedes igual que antes...
etc, etc... sea cual sea el número. Las divisiones y módulos son operaciones muy rápidas, así que no convierta a string un número salvo que luego tengas hacer otras cosas de tipo string con ello... Si directamente el dato es un string (caso del vaslor procedente de un control de texto, por ejemplo), puedes acceder direcamente al carácter en una posición dada, mediante alguno de los métodos que provee la clase string, o los métodos heredados de antiguas versiones de Basic, como son Left, Mid y Right, que admeás te permiten tomar más de un carácter a la vez.
Sé eficiente, pensando en si toda la operación es de cadenas o de números. No alternes alegremente entre uno y otro caso contínuamente a la hora de resolver problemas, acaba en ineficiencia...
|
|
|
En línea
|
|
|
|
luis456
Desconectado
Mensajes: 551
|
Bueno mientras espero el fin de semana a llegar a casa y pensando en esto se me ocurre que ya que tengo lo del los tex echo ,es trabajar en la variable : explico Result1 = {Num1 + 1, Num1 + 3} _ .Distinct().ToArray ' Elimino duplicados
Num1 es la variable que trae los numeros ,mi idea es antes de pasarlo por esta funcion que venga ya con el numero unico ,me imagino que lo podria hacer con la funcion de estraer ?? Substring(1, 1) por ejemplo saludos Luis
|
|
|
En línea
|
Que tu sabiduria no sea motivo de Humillacion para los demas
|
|
|
luis456
Desconectado
Mensajes: 551
|
Bueno chicos he resuelto mi problema de la forma mas fácil : ReadOnly Property Num6 As Int32 ' Get ' Return CInt(TextBox6.Text) ' End Get ' End Property ReadOnly Property Num6 As Int32 Get Return CInt(TextBox6.Text.Substring(0, 1)) 'TextBox6.Text.Substring(1, 1) End Get End Property
Gracias a todos por vuestro aporte hasta la siguiente ves Luis
|
|
|
En línea
|
Que tu sabiduria no sea motivo de Humillacion para los demas
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Tengo una duda de como determinar los digitos de un número
« 1 2 »
Programación C/C++
|
Felipe_Henriquez
|
13
|
35,566
|
19 Agosto 2011, 04:22 am
por rir3760
|
|
|
¿Cómo separar un numero binario en digitos?
Programación C/C++
|
Sherboc
|
7
|
9,943
|
24 Junio 2016, 02:30 am
por AlbertoBSD
|
|
|
Sustituir parte de una cadena de digitos por unos
Programación C/C++
|
sombrakepsilon
|
1
|
2,971
|
30 Septiembre 2016, 17:12 pm
por engel lex
|
|
|
Cómo saber un número de celular que tiene los últimos dígitos bloqueados con asteriscox
Dispositivos Móviles (PDA's, Smartphones, Tablets)
|
Reiko
|
6
|
13,502
|
25 Noviembre 2020, 00:16 am
por Reiko
|
|
|
[Pregunta]: ¿Cómo puedo obtener x primeros digitos de un número con PHP?
Desarrollo Web
|
Leguim
|
3
|
4,721
|
5 Agosto 2021, 00:56 am
por DtxdF
|
|