Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Eleкtro en 14 Marzo 2013, 20:00 pm



Título: [SOLUCIONADO] Parsear porcentaje % a single x.x
Publicado por: Eleкtro en 14 Marzo 2013, 20:00 pm
EDITO: ya está, estaba usando mal el parser, me faltaba dividirlo por 100 (Gracias Google):

Código
  1. Target_Volume = Single.Parse(GTrackBar_Volume.Value, Globalization.NumberStyles.Any, Globalization.CultureInfo.InvariantCulture) / 100



Segúramente esto para ustedes séa muy fácil pero yo no le encuentro el punto, jeje.

Tengo un trackbar con valor de "0" a "100", y mi intención es convertir el valor del trackbar en un single.

Si el valor es "100", convertirlo a "1"
Si el valor es "50", convertirlo a "0.50"
Si el valor es "1", convertirlo a "0.01"

Código
  1.    dim Target_Volume as single = 0
  2.  
  3.    Private Sub GTrackBar1_ValueChanged(sender As Object, e As EventArgs) Handles GTrackBar_Volume.ValueChanged
  4.  
  5.        If GTrackBar_Volume.Value = 100 Then
  6.            Target_Volume = 1
  7.        Else
  8.            ' Aquí se desmadra...
  9.            Target_Volume = 0.GTrackBar_Volume.Value
  10.            ' también he probado con Single.Parse
  11.        End If
  12.  
  13.    End Sub


Título: Re: Parsear porcentaje % a single x.x
Publicado por: Pablo Videla en 14 Marzo 2013, 20:08 pm
Te respondo en pseudocodigo aer si entendi

omitiendo todo el metodo
Código
  1.  
  2. if(Trackbar.value==100 ||Trackbar.value==50 || Trackbar.value==1 ){
  3.  
  4. Trackbar.value=Trackbar.value/100;
  5. }
  6.  

Espero no estar hablando huevadas, saludos  :xD


Título: Re: [SOLUCIONADO] Parsear porcentaje % a single x.x
Publicado por: Pablo Videla en 14 Marzo 2013, 20:10 pm
bueno ya lo habias arreglado xD


Título: Re: [SOLUCIONADO] Parsear porcentaje % a single x.x
Publicado por: Eleкtro en 14 Marzo 2013, 20:11 pm
Lo resolví justo antes de que respondieras, lo siento por darte trabajo xD, aunque ese "/100" de tu pseudo me habría servido para solucionarlo, era eso lo que me faltaba, dividirlo (las matemáticas no son lo mío).

EDITO: Vale no hacía flata ni el parseador, sólo había que dividirlo por 100 como en tu ejemplo

Código
  1. Target_Volume = sender.value / 100

un saludo!


Título: Re: [SOLUCIONADO] Parsear porcentaje % a single x.x
Publicado por: Pablo Videla en 14 Marzo 2013, 20:14 pm
Lo resolví justo antes de que respondieras, lo siento por darte trabajo xD, aunque ese "/100" de tu pseudo me habría servido para solucionarlo, era eso lo que me faltaba, dividirlo (las matemáticas no son lo mío).

un saludo!

No te preocupes, lo que me llamo la atencion es que realmente acepta enteros

http://msdn.microsoft.com/es-es/library/system.windows.forms.trackbar.value.aspx

pero no se como fue posible asignarle un float , si me resuelves la duda seria genial y no te preocupes que vi el problema solo al leerlo xD


Título: Re: [SOLUCIONADO] Parsear porcentaje % a single x.x
Publicado por: Eleкtro en 14 Marzo 2013, 21:42 pm
pero no se como fue posible asignarle un float
si me resuelves la duda seria genial

¿te refieres al trackbar?
Creo que te confundiste, en el trackbar no uso flotantes, uso un entero

en una API uso un single y por eso tenia que convertir el integer xD

Ya no sé si soy yo quien entendió mal, así que aquí tienes el code por si lo necesitas:

Código
  1.  
  2.   Dim Target_Volume As Single = 0.0
  3.  
  4.    ' TrackBar
  5.    Private Sub GTrackBar1_ValueChanged(sender As Object, e As EventArgs) Handles GTrackBar_Volume.ValueChanged
  6.        Target_Volume = sender.value / 100
  7.    End Sub

PD: el control es una trackbar extendida, GTrackbar.

Saludos!


Título: Re: [SOLUCIONADO] Parsear porcentaje % a single x.x
Publicado por: Pablo Videla en 14 Marzo 2013, 21:50 pm
Realmente no conozco el objeto Single, lo que pasa es que al dividir por 100 y al quedar un numero con decimales, por ejemplo 0.001 automaticamente pasa a ser un numero flotante, y no se como pudo almacenarlo si el trackbar solo acepta enteros, ahora lo vi en el link que te deje, no se donde puedo estar equivocado XD en todo caso lo pregunto por mera curiosidad porque no uso VB.net   :xD

En caso de que no te deje te debería lanzar una excepcion  :rolleyes:

Me cuentas si pasa algo raro en momento de ejecucion de la aplicación, saludos!


Título: Re: [SOLUCIONADO] Parsear porcentaje % a single x.x
Publicado por: ABDERRAMAH en 27 Marzo 2013, 18:53 pm
estará sin modo estricto, supongo, pero habría que usar csng() o ctype(  , single)