ABCHola ¿Es tu primera visita?
Registro
Mostrando resultados 1 de 9 de un total de 9
  1. #1
    Intermitente
    Fecha de registro:
    18 de junio de 2008
    Mensajes:
    51
    Dispositivo móvil:
    Psion Teklogix 7535 g2
    Sistema operativo:
    Otro

    Por defecto Convertir string a double sin eliminar la coma

    Hola holita de nuevo!

    En C#. Tengo un textbox que almacena un precio (2,56) y lo quiero almacenar en la bd como double...así que como Dios manda hago una conversión...lo almaceno como texto...transformo las posibles comas a puntos (xq el sqlserverce por lo visto sólo le gusta los puntos para decimales) y al hacer el Convert.ToDouble coge y me devuelve el numero sin punto, es decir, si tengo 2,56, transformado a 2.56, me devuelve 256.

    He probado con "Convert.ToDouble()" y con double.Parse() y los 2 me quitan el punto y me devuelven el numero tal cual.

    Código:
    string precioCompraString = textBoxPrecioCompraJoya.Text;
     precioCompraString = precioCompraString.Replace(",",".");
     precioCompra =  Convert.ToDouble(precioCompraString);
    He leido un hilo que decía algo sobre esto pero no es exactamente mi problema...¿alguna idea chicos?

  2. #2
    Motero abducío Avatar de beemer
    Fecha de registro:
    25 de agosto de 2003
    Desde:
    Madrid
    Mensajes:
    5.066
    Dispositivo móvil:
    Galaxy tab, Galaxy Nexus, Folio 13
    Sistema operativo:
    Android 4.0.x

    Por defecto

    Ni idea, pero por si ayuda...
    En C es atof()

  3. #3
    Infinito Avatar de jarogo
    Fecha de registro:
    16 de octubre de 2006
    Desde:
    Galicia - España
    Mensajes:
    2.388
    Dispositivo móvil:
    Impresionante emulador
    Sistema operativo:
    No tengo nada

    Por defecto

    Hola!

    Cita textual Publicado originalmente por Daniela69 Ver mensaje
    (xq el sqlserverce por lo visto sólo le gusta los puntos para decimales)
    no es del todo correcto. Eso depende de la configuración regional que tenga tu pda, ahí le indicas que caracter quieres para los decimales. Una vez aclarado esto, pues con este código lo solucionas:

    Código:
    Dim pos as integer
    
    Private Sub TextBox_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox.KeyPress
        If e.KeyChar = "," Then
           e.Handled = True
           pos = TextBox.SelectionStart
           TextBox.Text = Microsoft.VisualBasic.Left(TextBox.Text, TextBox.SelectionStart) + "." + Microsoft.VisualBasic.Right(TextBox.Text, TextBox.TextLength - TextBox.SelectionStart)
           TextBox.SelectionStart = pos + 1
        End If
    End Sub
    Igual te parece un poco rollo, pero lo que hace es simplemente cuando pulsas una "," te pone un "."

    A ver si te sirve!!
    Última edición por jarogo 01 de junio de 2009 a las 18:05
    -Estas gorda, ehh!!!
    -Si, como una tapia...

  4. #4
    Intermitente
    Fecha de registro:
    18 de junio de 2008
    Mensajes:
    51
    Dispositivo móvil:
    Psion Teklogix 7535 g2
    Sistema operativo:
    Otro

    Exclamación

    Yo pienso que no es de la configuracion regional de la PDA.

    - Si yo hago un INSERT en mi bd y al campo double le inserto un '2.5' lo coge e inserta bien.
    - Si yo hago un INSERT en mi bd y al campo double le inserto un '2,5' NO lo inserta bien.

    Pero bueno, que el problema no es ese. El problema es transformar el string que se mete en el textbox a double porque al hacer el convert.todouble me quita la coma o el punto del numero.
    Es decir:
    Si tengo 2,5 me devuelve un 25
    Si tengo un 3.5 me devuelve un 35

    HELP!

  5. #5
    Infinito Avatar de jarogo
    Fecha de registro:
    16 de octubre de 2006
    Desde:
    Galicia - España
    Mensajes:
    2.388
    Dispositivo móvil:
    Impresionante emulador
    Sistema operativo:
    No tengo nada

    Por defecto

    En mi pda, la configuracion regional tiene para los decimales la coma. Entonces, si yo intento grabar 1.5 me graba 15 (igual que tu), pero si pongo 1,5 me graba el valor correcto. Lo que no tiene sentido es que te grabe 15 tanto si pones 1.5 como si pones 1,5.

    ¿probaste a escribir la sentencia insert antes de ejecutarla, a ver como está?

    Saludos!
    -Estas gorda, ehh!!!
    -Si, como una tapia...

  6. #6
    Intermitente
    Fecha de registro:
    18 de junio de 2008
    Mensajes:
    51
    Dispositivo móvil:
    Psion Teklogix 7535 g2
    Sistema operativo:
    Otro

    Por defecto

    Vamos a ver...

    He hecho los insert en el SQL CE y si lo pongo con . me lo inserta bien (5.3).
    Si lo pongo con , me la quita. Si meto 2,2 me mete 22 en la tabla.

    Pero el problema no es ese...porque yo lo primero que hago con el string es un replace de coma por punto, por lo que me aseguro que siempre sea punto.

    El problema es, repito, transformar el string '2.2' a un double SIN QUE ME QUITE EL PUNTO porque siempre me quita el punto y almaceno en el double 22 sin punto.

    Venga que estamos cerca!

  7. #7
    Infinito Avatar de jarogo
    Fecha de registro:
    16 de octubre de 2006
    Desde:
    Galicia - España
    Mensajes:
    2.388
    Dispositivo móvil:
    Impresionante emulador
    Sistema operativo:
    No tengo nada

    Por defecto

    pues yo hago Cdbl(TextBox.Text) y ya está, me funciona sin problemas.

    Pruébalo, a ver si así...
    -Estas gorda, ehh!!!
    -Si, como una tapia...

  8. #8
    Intermitente
    Fecha de registro:
    18 de junio de 2008
    Mensajes:
    51
    Dispositivo móvil:
    Psion Teklogix 7535 g2
    Sistema operativo:
    Otro

    Por defecto

    Ok, arreglado!

    El caso es que sólo me deja meter con comas...no entiendo nada porque hasta hace 1 momento solo dejaba meter con puntos...

    Total que sustituyo punto por coma y siempre con coma lo meto...

    Muchas gracias Jarogo...es cierto eso de Inconmensurable!!

  9. #9
    Infinito Avatar de jarogo
    Fecha de registro:
    16 de octubre de 2006
    Desde:
    Galicia - España
    Mensajes:
    2.388
    Dispositivo móvil:
    Impresionante emulador
    Sistema operativo:
    No tengo nada

    Por defecto

    no digas esas cosas, mujer...


    Pues yo, erre que erre , insisto en que la configuración regional tiene que ver. Y si hasta hace poco te iba de una manera y ahora de otra, ¿puede ser que por medio resetearas la pda y volvierta a la configuración inicial?

    Bueno, lo importante es que se ha arreglado. Un saludo!!
    -Estas gorda, ehh!!!
    -Si, como una tapia...


 

Información del tema

Users Browsing this Thread

Hay actualmente 1 usuarios viendo este tema. (0 usuarios registrados y 1 usuarios sin registrar)

Temas similares que te pueden interesar

  1. Punto y coma decimal
    Por periko10 en el foro Mac y Mac OS X
    Respuestas: 0
    Último mensaje: 01 de febrero de 2009, 20:35
  2. mi 8910i... me lo han dejado en coma....
    Por gambolpuddy en el foro De todo un poco
    Respuestas: 43
    Último mensaje: 19 de febrero de 2007, 23:19
  3. Como Convertir Un Array De Bytes A String?
    Por hatun en el foro Programación en Windows Mobile
    Respuestas: 2
    Último mensaje: 05 de abril de 2006, 13:14
  4. Convertir un Double a bytes???
    Por perrete en el foro Programación en Windows Mobile
    Respuestas: 3
    Último mensaje: 16 de mayo de 2005, 18:04
  5. convertir string a integer
    Por kaiser en el foro Programación en Windows Mobile
    Respuestas: 4
    Último mensaje: 03 de octubre de 2003, 03:03

Comparte este hilo en:

Comparte este hilo en:

Pautas del foro

  • No puedes publicar nuevos temas
  • No puedes publicar respuestas
  • No puedes publicar ficheros adjuntos
  • No puedes editar tus mensajes
  •  
Twitter Facebook You Tube RSS