none
dato float a ToString()

    Question

  • Hola a tod@s:

    Cuando hago eso, pues me interesa pasar el dato valor float a una cadena, veo que pierde el punto de decimales y lo pasa como un entero. Por ejemplo 4.23 lo pasa como 423. ¿Como convierto una dato float a string y que siga teniendo el punto de decimales?

    Muchas gracias de antemano
    Tuesday, January 23, 2007 8:00 AM

Answers

  • Mira este ejemplo:

    float f = 12.45F;

    string formato1 = String.Format("{0}", f.ToString());

    string formato2 = f.ToString("N");

    Los 2 hacen lo mismo pero el segundo caso es más egfectivo porque no hace boxing.

    Salu2.

    Tuesday, January 23, 2007 10:19 AM
  • Eso es porque para nosotros la separación de decimales es la coma, le puedes especificar en el parse un NumberFormtInfo indicandole que el separador de decimales es el punto:

    string [] elements = new string[4];

    elements[0]="producto1";

    elements[1]="5.25";

    elements[2]="4.99";

    elements[3]="3.21";

    NumberFormatInfo _NumberFormatInfo = new NumberFormatInfo();

    _NumberFormatInfo.NumberDecimalSeparator = ".";

    float f = float.Parse(elements[1], _NumberFormatInfo);

    Salu2

    Tuesday, January 23, 2007 11:15 AM

All replies

  • Mira este ejemplo:

    float f = 12.45F;

    string formato1 = String.Format("{0}", f.ToString());

    string formato2 = f.ToString("N");

    Los 2 hacen lo mismo pero el segundo caso es más egfectivo porque no hace boxing.

    Salu2.

    Tuesday, January 23, 2007 10:19 AM
  • Creo que con eso arreglo mi problema, pero me ocurre también que si tengo una cadena con el texto string cadF = "4.99" y a esta cadena le aplico float f = float.Parse(cadF); no lo hace bien y me devuelve en el valor float un 499.0 ¿hay que indicar algo tambien al parse?

    Gracias Luis
    Tuesday, January 23, 2007 10:40 AM
  • Es interesante y no se por qué será así:
    StreamReader sr = new StreamReader(pathAndFile);
    string line = sr.ReadLine();
    string[] elementes;
    elements = line.Split(new char[] { '|' });

    Ahora tengo en elements los datos de un producto, por ejemplo en el fichero habia
    producto1|5.25|4.99|3.21
    por lo tanto en elements tengo
    elements[0]="producto1"
    elements[1]="5.25"
    elements[2]="4.99"
    elements[3]="3.21"

    Si aplico float.Parse(elements[1]) obtengo un valor float igual a 525.0, igual pasa si le digo que sea float.Parse(elements[1].ToString()). Pero si cambio el punto separador de los decimales por una coma, entonces si obtengo el valor en decimal. float.Parse("4,99") = a un valor 4.99 tipo float. No se si tendrá que ver con la configuración de moneda en al configuración regional.

    Que opinais?

    Tuesday, January 23, 2007 10:59 AM
  • Eso es porque para nosotros la separación de decimales es la coma, le puedes especificar en el parse un NumberFormtInfo indicandole que el separador de decimales es el punto:

    string [] elements = new string[4];

    elements[0]="producto1";

    elements[1]="5.25";

    elements[2]="4.99";

    elements[3]="3.21";

    NumberFormatInfo _NumberFormatInfo = new NumberFormatInfo();

    _NumberFormatInfo.NumberDecimalSeparator = ".";

    float f = float.Parse(elements[1], _NumberFormatInfo);

    Salu2

    Tuesday, January 23, 2007 11:15 AM
  • estoy sufiendo como puedo cambiar una cadena existente string a char. para poderla usar como arreglo de caracteres
    Thursday, March 01, 2007 6:41 PM
  • Para pasar una cadena a char puedes utilizar el método ToCharArray() que te devuelve una matriz de chars:

    string texto = "Hola";

    char [] caracteres = texto.ToCharArray();

    //char[0] -> H

    //char[1] -> o

    //char[2] -> l

    //char[3] -> a

    Salu2

    Friday, March 02, 2007 7:39 AM