Dev - C++ - como poner numeros decimales

   
Vista:

como poner numeros decimales

Publicado por abraham (21 intervenciones) el 05/10/2015 00:49:02
Hola programadores

estoy haciendo un programa en donde el usuario tiene que ingresar un numero, el cual yo lo tengo que enviar en pantalla con decimales.

ejemplo

el usuario teclea la cantidad de 12000

yo lo tengo que mostrar en pantalla asi 12000.00

como lo puedo hacer?

si me pueden ayudar se los agradeceria, gracias

estoy trabajando con code blocks con C++
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

como poner numeros decimales

Publicado por agustin (311 intervenciones) el 05/10/2015 14:38:19
Tendria que ver el codigo que tienes para saber como lo estas haciendo pero en principio esta linea haria lo que quieres:
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
 
int main(int argc, char* argv[])
{
   int valor, nDecimales=4;
   printf("Introduce un valor entero: ");
   scanf("%d",&valor);
   printf("El valor con %d decimales es: %.*f\n",nDecimales,nDecimales,(float)valor);
   return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

como poner numeros decimales

Publicado por abraham (21 intervenciones) el 06/10/2015 04:08:19
Gracias por la ayuda :)

pero como seria en codigo C++, esque apenas empece a programar y no se mucho de C, o me podrias explicar como funciona

me habian dicho que con la funcion " Double " pero en realidad no se mucho

de antemano gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

como poner numeros decimales

Publicado por agustin (311 intervenciones) el 06/10/2015 08:08:41
cout tiene unos Flags y uno de ellos es para indicarle cuantos decimales mostrar. Usas eso y haces un cast y te tiene que salir.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

como poner numeros decimales

Publicado por Thanatos (73 intervenciones) el 06/10/2015 09:38:57
Una manera es cambiar la precisión del stream de salida.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <iomanip>
 
int main() {
    const int nDecimales(2);
    int entero(0);
    float real(0.0f);
 
    std::cout << "Ingrese un n\xA3mero entero:\nn\xA3mero = ";
    std::cin >> entero;
 
    real = static_cast<float>(entero);
 
    std::cout << "\nAntes de cambiar la precisi\xA2n --> " << real << std::endl;
 
    std::streamsize precisionOriginal = std::cout.precision();
    (void)std::cout.precision(nDecimales);
    std::cout << std::fixed << std::showpoint;
 
    std::cout << "\nLuego de cambiar la precisi\xA2n --> " << real << std::endl;
 
    (void)std::cout.precision(precisionOriginal);
    std::cout << std::defaultfloat << std::noshowpoint;
 
    std::cout << "\nCon la precisi\xA2n original ------> " << real << std::endl;
 
    (void)std::cin.get();
    return 0;
}

Para dejar más claro el ejemplo, te dejo una explicación breve de las líneas que quizás podrían causar alguna duda:

Línea 12
Convierte el numero entero, en un número real de tipo float y asigna el resultado a la variable real.

Línea 16
Almacena el tamaño de la precisión actual del stream de salida (cout), en la variable precisionOriginal, en caso de que se necesite restituir su valor original.

Línea 17
Modifica la precisión del stream de salida, asignándole el valor almacenado en la constante nDecimales.

Linea 18
Configura el stream de salida (utilizando el flag de formato std::fixed), para mostrar una cantidad fija de números luego del punto decimal, dicha cantidad fue especificada en la línea anterior, cuando se modificó la precisión.
Al usar std::showpoint se muestra siempre el punto decimal, cuando la salida es un valor de tipo numérico con punto flotante.

Linea 22
Regresa la precisión del stream de salida a su valor original.

Linea 23
Revierte los cambios realizados por std::fixed y std::showpoint, respectivamente.

Si no configuraste Code::Blocks para compilar utilizando el estándar 11 (C++11) o superior, es posible que std::defaultfloat ocasione un error al compilar. Si se presenta ese problema, puedes sustituir la línea 23, por estas dos líneas:

1
2
std::cout.unsetf(std::ios_base::floatfield);
std::cout.unsetf(std::ios_base::showpoint);

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

como poner numeros decimales

Publicado por abraham (21 intervenciones) el 06/10/2015 19:49:30
Gracias :)

Gracias a todos los que respondieron a esta pregunta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar