Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: extreme69 en 31 Octubre 2011, 23:17 pm



Título: Donde estan los ceros? o.O
Publicado por: extreme69 en 31 Octubre 2011, 23:17 pm
Hola,

Estoy haciendo un RGB to RGBA coverter, la diferencia entre ellos es que en RGB los valores van del 0 al 255 y en RGBA van del 0.0 al 1.0.

Entonces hago RGB_R / 255 = RGBA_R:

Código:
Dim RGB_R As String
Dim value As String

RGB_R = Text1.Text
value = RGB_R / 255

MsgBox value

Pero se come los 0 ... por ejemplo si hago 1 / 255 en la calculadora me da: 0,003921568627450980392156862745098 pero si lo hago con mi soft me da 3,92156862745098E-03

Incluso si hago:

Código:
Dim RGB_R As String
Dim value As String

RGB_R = Text1.Text
value = RGB_R / 255

dim value2 as string
value2 = value / 1000

MsgBox value

Sigue sin mostrar los ceros ...


Título: Re: Donde estan los ceros? o.O
Publicado por: $Edu$ en 31 Octubre 2011, 23:25 pm
Código
  1. dim a as double, b as double
  2. dim res as double
  3.  
  4. a = 1
  5. b = 1000
  6.  
  7. res = a / b
  8.  
  9. msgbox res

Integer y long para numeros enteros, double para con coma

Y por cierto, no haces una conversion, estas dividiendo un string, cuidado con eso.

Cdbl("123") creo


Título: Re: Donde estan los ceros? o.O
Publicado por: $Edu$ en 31 Octubre 2011, 23:31 pm
A no, creo que te habre ayudado pero sigue dando como dices, pero fijate que dice E -03 que es elevado a la -03 que seria "correr" la coma 3 veces a la izquierda. No sabia que se mostraba asi, pero si luego sigues haciendo operaciones no te preocupes, porque si despues por ejemplo lo multiplicas por 100 se va el exponente


Título: Re: Donde estan los ceros? o.O
Publicado por: 79137913 en 31 Octubre 2011, 23:42 pm
HOLA!!!

Por ejemplo si hago 1 / 255 en la calculadora me da: 0,003921568627450980392156862745098 pero si lo hago con mi soft me da 3,92156862745098E-03

Te respondiste solo, los dos numeros:
0,003921568627450980392156862745098
3,92156862745098E-03

SON IGUALES

E-03 significa *10^-3 que es 0,001 entonces

3,92156862745098 * 0,001 es = a 0,00392156862745098

Que es muy cercano a tu numero.

Si haces operaciones con ese numero con E no vas a tener problemas ;)

GRACIAS POR LEER!!!


Título: Re: Donde estan los ceros? o.O
Publicado por: burbu_1 en 1 Noviembre 2011, 00:00 am
para ver esos ceros, que como te dice 79137913 no desaparecen, puedes usar la función format (http://msdn.microsoft.com/es-es/library/59bz1f0h%28v=VS.80%29.aspx)

Código:
MsgBox Format(value, "General Number")



Título: Re: Donde estan los ceros? o.O
Publicado por: extreme69 en 1 Noviembre 2011, 00:22 am
Si, sé que son iguales, pero yo necesitaba los ceros.

Gracias burbu_1, me funcionó perfecto!


Título: Re: Donde estan los ceros? o.O
Publicado por: extreme69 en 1 Noviembre 2011, 00:30 am
Hay alguna manera fácil de cambiar el símbolo de los decimales? me refiero a la coma, hay forma fácil de cambiar la coma por un punto o tengo que hacer una función que reemplace el char?

EDIT:

Código:
Function reemplazarTexto(textoCompleto As String, textoBuscar As String, textoReemplazar As String) As String
  Dim resultado As String
  
  resultado = Replace(textoCompleto, textoBuscar, textoReemplazar, , , vbTextCompare)
  reemplazarTexto = resultado
End Function

Quedó funcionando, gracias! :)


Título: Re: Donde estan los ceros? o.O
Publicado por: BlackZeroX en 1 Noviembre 2011, 04:53 am
.
FormatNumber()

Dulces Lunas!¡.


Título: Re: Donde estan los ceros? o.O
Publicado por: extreme69 en 1 Noviembre 2011, 05:00 am
Gracias Black!