Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: josejs en 21 Enero 2013, 22:42 pm



Título: No mostrar decimales en Visual C
Publicado por: josejs en 21 Enero 2013, 22:42 pm
Buenas tardes, estoy realizando un ejercicio y no consigo sacarlo, llevo dándole vueltas toda la tarde, a ver si alguien puede echarme una mano, el ejercicio es el siguiente.

Realizar un programa que lea la altura en cms de un individuo y muestre, en un
label, cuántos metros y cms tiene. (185 -> 1 metro, 85 cms. 205-> 2 metros 5 cms.).
Realizar con un formulario de la siguiente forma:

(http://img94.imageshack.us/img94/9752/programaciony.jpg)

 
Este es el código que de momento llevo hecho....

private void button1_Click(object sender, EventArgs e)
        {
            double metro, cms;
            double a, b;
                        
            a = Convert.ToDouble(textBox1.Text);
            b = Convert.ToDouble(textBox1.Text);
            metro =  a / 100;
            cms = b / 1;


             resultado.Text = ("Mide " + metro +" metros y "+ cms + " cms");

Creo que voy medio encaminado, pero no se ya como hacerlo....


Título: Re: No mostrar decimales en Visual C
Publicado por: ApOkAlizE en 22 Enero 2013, 01:21 am
No se si he entendido exactamente a lo que te referías. He tenido una idea para hacer lo que me parece que querías hacer.
#include <iostream>

using namespace std;

int main()
{
    int x, y;
    cin >> x;
    y = x;
    x = x / 100;
    y = y - (x*100);
    cout << x << " metro" << endl;
    cout << y << " centimetros" << endl;
    return 0;
}
 
No se si querías bien bien eso... ya me dirás si es esto u otra cosa.

PD: Se me hace triste ver como era este foro de activo hace un par o tres de años y con lo que se ha convertido...


Título: Re: No mostrar decimales en Visual C
Publicado por: 85 en 22 Enero 2013, 03:00 am
http://www.etalking.com.ar/showthread.php?1439-remover-decimales

? puede ayudar?


Título: Re: No mostrar decimales en Visual C
Publicado por: durasno en 22 Enero 2013, 03:50 am
Código
  1. metros=altura/100;
  2. centimetros=altura%100;
  3.  
  4.    cout << metros << " metro" << endl;
  5.    cout << centimetros << " centimetros" << endl;


Saludos


Título: Re: No mostrar decimales en Visual C
Publicado por: josejs en 26 Enero 2013, 17:30 pm
Gracias de antemano, consigo que me saque los metros y los centimetos, pero en ambos me saca la misma cifra.

(http://img38.imageshack.us/img38/4660/screenshot062ut.jpg)

He estado leyendo y practicando con los datos que me habeis dado, pero lo único que me falta son que en los metros no salgan los decimales. Y que en los centrimetros únicamente salgan los decimales.


Título: Re: No mostrar decimales en Visual C
Publicado por: avesudra en 26 Enero 2013, 18:20 pm
Hola josejs, puedes usar un cast a int para truncar esos decimales de la siguiente forma:
Código
  1. metros=(int)(altura/100);
Una vez hecho ese cast supongamos que tuviesemos los siguientes datos:
Código:
Altura: 385 cms
Tendríamos con lo dicho anteriormente esta operación:
Código:
metros = (truncar)(385/100) todo esto es igual a 3
Bien eso lo tenemos. Ahora para sacar los centímetros que quedan, en C++ y en C con los tipos siguientes:
  • float
  • double
No se puede hacer la operación módulo directamente con el operador '%'(ya que no dá el resultado correcto como puedes comprobar), hay que hacerlo con la siguiente función:
Código
  1. double fmod ( double numerator,double denominator );
  2. float fmod (float numerator,float denominator );
  3. long double fmod (long double numerator, long double denominator );
Referencia ~~> http://www.cplusplus.com/reference/cmath/fmod/
Por lo tanto el código quedaría así:
Código
  1. metros = (int)(altura/100);
  2. centimetros = fmod(altura,100);
Además tienes que añadir este archivo de cabecera para la función 'fmod':
Código
  1. #include <cmath>
Lo que me parece bastante extraño es que el compilador no te haya dicho nada.

¡Un saludo!


Título: Re: No mostrar decimales en Visual C
Publicado por: durasno en 26 Enero 2013, 22:01 pm
Citar
He estado leyendo y practicando con los datos que me habeis dado, pero lo único que me falta son que en los metros no salgan los decimales. Y que en los centrimetros únicamente salgan los decimales.
me olvide de aclarar q las variables metros y centimetros deben ser del tipo int(sino segui el consejo de avesudra)


SAludos