Test Foro de elhacker.net SMF 2.1

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
metros=altura/100;
centimetros=altura%100;

    cout << metros << " metro" << endl;
    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 (cpp) [Seleccionar]
metros=(int)(altura/100);
Una vez hecho ese cast supongamos que tuviesemos los siguientes datos:
Altura: 385 cms
Tendríamos con lo dicho anteriormente esta operación:
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:
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 (cpp) [Seleccionar]
double fmod ( double numerator,double denominator );
float fmod (float numerator,float denominator );
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 (cpp) [Seleccionar]

metros = (int)(altura/100);
centimetros = fmod(altura,100);

Además tienes que añadir este archivo de cabecera para la función 'fmod':
Código (cpp) [Seleccionar]
#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
CitarHe 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