Visual Basic - Como volver decimales a enteros?

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Como volver decimales a enteros?

Publicado por oscar (3 intervenciones) el 16/01/2017 07:38:56
hola soy nuevo en el foro y en el lenguaje,espero poder ayudar y adaptarme ...



necesito saber como volver un valor decimal a enteros por ejemplo:


0.456456 a 456456
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Como volver decimales a enteros?

Publicado por Antoni Masana (558 intervenciones) el 16/01/2017 08:28:50
Pues como se ha realizado toda la vida, multiplicando por 10.

Dos formas de hacerlo:

- Poniendo tantos ceros como decimales:
1
0.456456 * 1000000 = 456456

- Usando las potencias: donde 10^6 = 1000000
1
0.456456 * 10^6 = 456456

Recuerdas las conversiones del Sistema Métrico Decimal, pasar de metros a centímetros o viceversa, pues es lo mismo.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Como volver decimales a enteros?

Publicado por oscar (3 intervenciones) el 16/01/2017 08:50:04
Gracias por su respuesta.. La idea es un text que me muestre las decimales como unidades enteras para después trabajar con ellas ya no como decimales... Pero la cantidad de los decimales es variable


No todos son de 2 decimales por lo tanto *100 no funcionará, en el caso de .002 *100=0.2


Intento que:


.123 muestre 123

.12345678910 muestre 12345678910

Intento hacer esto para n decimales,no se con que código puedo determinar cuantos dígitos tiene para saber por cuanto multiplicalo, o bien algun tipo de formato que le quite el punto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Como volver decimales a enteros?

Publicado por Andres Leonardo (1798 intervenciones) el 16/01/2017 14:59:46
Pues facil... cuenta el numero de decimales

text1.text = 0.12345

cuandtos decimales = 5 en tonces 10 a la 5 = 10 * 10 * 10 * 10 * 10 = 100000

text 1.text = 0.12345 * 100000 = 12345 y listo .....

ahora si no queires eso podrias hacer un substring a partir del 1 y ponerlo en una valirble string y luego convertirla...

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 147
Ha disminuido 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Como volver decimales a enteros?

Publicado por Juan Gilberto (323 intervenciones) el 16/01/2017 17:06:58
El compañero Antoni Masana ya te dio la respuesta inmedatamente
Como sea aqui pongo el codigo con una solucion, tambien comentada por Andres Leonardo
-Convertir el numero a Texto
-Convertir a Entero Largo los numeros a partir del punto

1
2
3
4
5
6
7
Dim XNumeroD As Double
Dim XTexto         As String
Dim XNumeroL As Long
 
XNumeroD = 0.123456789
XTexto = Format(XNumeroD)
XNumeroL = CLng(Mid(XTexto,2))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Como volver decimales a enteros?

Publicado por Antoni Masana (558 intervenciones) el 17/01/2017 10:05:40
Si solo vas a tener valores decimales, es decir 0.ddd o .dddd independientemente de la cantidad de decimales esto también lo soluciona.

No es tan bonito pero funciona:

1
Text2.Text = Mid$(Text1.Text, InStr(Text1.Text, ".") + 1)

Otra forma que sirve para todos los casos.

1
Text2.Text = Text1.Text * 10 ^ (Len(Text1.Text) - InStr(Text1.Text, "."))

¿Que hace?
- Tomemos por ejemplo el numero 12.4567,
- La longitud del texto es de 7 caracteres, el punto esta en la posición 3, 7 - 3 es igual a 4 que es el número de decimales.
- Multiplica el numero por 10^4

Saludos.
\\//_

Personalmente prefiero la segunda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar
sin imagen de perfil

Como volver decimales a enteros?

Publicado por oscar (3 intervenciones) el 18/01/2017 07:58:08
gracias por las soluciones y la ayuda compañeros!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar