Autor Tema: De INT a FLOAT  (Leído 1840 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Rulo

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 168
De INT a FLOAT
« en: 18 de Septiembre de 2007, 16:53:28 »
 

            Hola!!


       tengo una duda, lo que quiero hacer es, apartir de 2 int formar un float.

                ejemplo;

         int x=20;
         int y=53;
         float z;

              Que  z = 20.53;

      Alguien sabe como lo logro?''

                        Saludos
                    Gracias                  :-/

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: De INT a FLOAT
« Respuesta #1 en: 18 de Septiembre de 2007, 17:05:06 »
 :mrgreen:
Código: C++
  1. z = x + (Y/100);
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado Rulo

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 168
Re: De INT a FLOAT
« Respuesta #2 en: 18 de Septiembre de 2007, 17:15:41 »

        que facil no?''   :D

  y yo buscando una funcion que lo hiciera, como FMOD que vendria haciendo lo contrario.

                          tambien el ATOF( ) me podria servir.

          Gracias Red.

                    Saludos
« Última modificación: 18 de Septiembre de 2007, 17:20:15 por Rulo »

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: De INT a FLOAT
« Respuesta #3 en: 18 de Septiembre de 2007, 17:47:58 »
Solo como consejo puede que algun compilador no te haga el casteo automático y debas hacerlo a mano, siguiendo el simplísimo y efectivísimo ejemplo de don diego quedaría


z = (float) x + (float) Y / 100.0 ;


Si bueno y simple, doblemente bueno.  :)
Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Rulo

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 168
Re: De INT a FLOAT
« Respuesta #4 en: 18 de Septiembre de 2007, 18:16:00 »


  Pues si que los debe llevar (float).


                     Gracias Maunix  :-).

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: De INT a FLOAT
« Respuesta #5 en: 19 de Septiembre de 2007, 20:22:47 »
Que ocurre si y = 5, tendremos: 20.05, cuando deberiamos tener: 20.5.

Podriamos utilizar: sprintf(cadena,"%u\.%u",x,y) y pasarlo a float con strtod(cadena,&ptr);

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado Rulo

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 168
Re: De INT a FLOAT
« Respuesta #6 en: 19 de Septiembre de 2007, 20:37:00 »

       Exacto, aun que en donde lo utilizo siempre recibo 2 digitos, por lo que no tengo problema.



                Por ello mencione que podria utilizar ATOF();


    aqui el ejemplo de CCS


              char string [10];
              float x;

              strcpy (string, "123.456");
              x = atof(string);
              // x is now 123.456

                        Saludos   :)

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: De INT a FLOAT
« Respuesta #7 en: 19 de Septiembre de 2007, 20:40:10 »
Exacto, aun que en donde lo utilizo siempre recibo 2 digitos, por lo que no tengo problema.

Ese dato no lo sabiamos, en cuyo caso la solución aportada por RedPic es más eficiente.

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús


 

anything