none
Convertir string a double manteniendo formato ASP.NET C# RRS feed

  • Pregunta

  • Hola , estoy importando valores mediante un excel, estoy valores llegan de tipo string y al convertirse pueden ser de tipo int o double, como puedo hacer para que cuando lo convierta a double matenga la misma estructura.

    Ejm:  el valor llega asi :4,979

    y cuando lo convierto a double ,porque ese valor se almacena en la bd en un campo de tipo float, el valor se convierte asi:

    4979.0

    Como puedo hacer para que al momento de convertirlo a double siga manteniendo el mismo formato :

    Algo asi:

    string ->Convierto a double->double

    4,979 ->Convierto a double->4.979

    martes, 26 de julio de 2016 14:22

Respuestas

  • hola

    esto tiene que ver con la configuracion regional, cuando insertes en el excel deberias ver de definir la cultura en-US para que lo agregue de forma correcta

    no necesitas convertir nada de string a double ni nada raro

    solo cuando trabajes con excel define

    System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");

    de esta forma tendras la cultura que excel reconoce y la coma sera un punto decimal

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 26 de julio de 2016 14:52

Todas las respuestas

  • hola

    esto tiene que ver con la configuracion regional, cuando insertes en el excel deberias ver de definir la cultura en-US para que lo agregue de forma correcta

    no necesitas convertir nada de string a double ni nada raro

    solo cuando trabajes con excel define

    System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");

    de esta forma tendras la cultura que excel reconoce y la coma sera un punto decimal

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 26 de julio de 2016 14:52
  • Hola Leandro:

    Uso este codigo , obtengo el valor  y lo almaceno en una variable

    programado=4,979

                    for (prog = 1; prog < 2; prog++)
                    {
                        programado = dtCronogramaPresupuesto.Rows[rowPresupuesto][posicion].ToString();
                            
                    }
    
                    if (!String.IsNullOrEmpty(programado))
                    {
    
    
                        int programadoint = 0;
                        double programadoDouble;
    
                        bool result = int.TryParse(programado,out programadoint);
    
                        bool resultDouble = double.TryParse(programado,out programadoDouble);
    
                        if (result == false && resultDouble==false)
                        {
                            DAO.insertTaskBudget(indice, year, month, 0, ejecutado, int.Parse(Session["idProyecto"].ToString()), 3);
                        }
                        else if (result==false && resultDouble==true)
                        {
                            programadoDouble = Convert.ToDouble(programado);
                            DAO.insertTaskBudget(indice, year, month, programadoDouble, ejecutado, int.Parse(Session["idProyecto"].ToString()), 3);
                        }
                        else
                        {
                            programadoint = int.Parse(programado);
                            DAO.insertTaskBudget(indice, year, month, programadoint, ejecutado, int.Parse(Session["idProyecto"].ToString()), 3);
                        }
    
                       
                    }


    pero necesito guardar ese valor asi como esta en un campo de tipo double, pero al convertir ese valor que llega a double, me devuelve esto:

    programado-Convierto->double

    4,979-------------------->4979.0

    martes, 26 de julio de 2016 16:48