SoloCodigo

Programación General => C/C++ => Visual C++ => Mensaje iniciado por: cazagavilan en Domingo 24 de Julio de 2011, 08:43

Título: Sumar un porcentaje
Publicado por: cazagavilan en Domingo 24 de Julio de 2011, 08:43
Hola, tengo este codigo en el que pido un precio y un iva para despues sumarlos el problema que tengo es que no se como hacer que el numero  introduzido en iva se convierta en un porcentaje, por ejemplo: ellos me introduzen el numero 18 y yo lo paso a %18.
Código: C++
  1. #include "stdafx.h"
  2. #include "iostream"
  3. using namespace std;
  4. double total (double, double);
  5.  
  6. void main()
  7. {
  8.         double precio, iva;
  9.         cout << "Introduzca el precio: " ;
  10.         cin >> precio;
  11.         cout << "Introduzca el iva: " ;
  12.         cin >> iva;
  13.         cout << "El total es: " << total(precio,iva) << "\n";
  14. }
  15. double total ( double precio, double iva)
  16. {
  17.         double total = precio+iva;
  18.         return total;
  19. }

Gracias.
Título: Re:Sumar un porcentaje
Publicado por: ProfesorX en Domingo 24 de Julio de 2011, 09:56
Hola de nuevo cazagavilan

Tu pregunta es mas de matematicas basicas que de programacion, pero bueno  :whistling:

El nombre lo dice "por ciento" o sea, un porciento o porcentaje es solo una manera de expresar un numero como una fraccion de 100.

Simplemente se divide entre 100.

O sea siguiendo tu ejemplo, 18% es en realidad 18/100, o sea 0.18.

Para obtener el porcentaje de una cantidad (en tu caso un precio) se multiplica la cantidad por el porcentaje (no una suma, una multiplicacion), o sea:

precio * (iva / 100)

Dado que lo que quieres es obtener el precio mas iva, la operacion seria:

total = precio+(precio * (iva / 100));

Saludos y  :suerte:
Título: Re:Sumar un porcentaje
Publicado por: cazagavilan en Domingo 24 de Julio de 2011, 10:09
Muchas gracias, creia que habia otra forma mas reducida de hacerlo y no me lo iban a dar por malo, pero ya sabiendolo pues lo hago asi, de nuevo gracias.
Título: Re:Sumar un porcentaje
Publicado por: cazagavilan en Domingo 24 de Julio de 2011, 10:45
Bueno he avanzado un pelin mas y ahora tengo otro problema xD.. Dentro el ejercicio anterior tambien tengo que hacer que si no escriben el iva se sume automaticamente un 18% pero no se me suma nada.
Código: C++
  1. #include "stdafx.h"
  2. #include "iostream"
  3. using namespace std;
  4. double total (double, double);
  5. double iva2 = 18;
  6.  
  7. void main()
  8. {
  9.         double precio, iva;
  10.         cout << "Introduzca el precio: " ;
  11.         cin >> precio;
  12.         cout << "Introduzca el iva: " ;
  13.         cin >> iva;
  14.         cout << "El total es: " << total(precio,iva) << "\n";
  15.         if (iva > 0)
  16.                 cout << total (precio,iva);
  17.         else
  18.                 cout << precio+(precio*(iva2/100));
  19.  
  20. }
  21. double total ( double precio, double iva)
  22. {
  23.         double total = precio+(precio * (iva / 100));
  24.         return total;
  25. }
  26.  
Gracias.
Título: Re:Sumar un porcentaje
Publicado por: a343 en Domingo 24 de Julio de 2011, 22:50
Creo que te estas complicando la vida creando dos variables de iva, yo haria una , la cual la inicializo a 18, y si me introducen algo machaco ese valor, y sino pues sigue ese valor.
De todas maneras, el codigo parece correcto
Título: Re:Sumar un porcentaje
Publicado por: cazagavilan en Lunes 25 de Julio de 2011, 06:49
Al final me quedo asi:
Código: C++
  1. #include <iostream>
  2. using namespace std;
  3. double total (double, double);
  4. double iva2 = 18;
  5.  
  6. int main(){
  7.         double precio, iva;
  8.         cout << "Introduzca el precio: " ;
  9.         cin >> precio;
  10.         cout << "Introduzca el iva: " ;
  11.         cin >> iva;
  12.         if (iva > 0)
  13.                         cout <<"El total es: " << total (precio,iva) <<"\n";
  14.         else
  15.                         cout <<"El total es: " << precio+(precio*(iva2/100)) <<"\n";
  16.  
  17.         return 0;
  18. }
  19.  
  20. double total ( double precio, double iva)
  21. {
  22.         double total = precio+(precio * (iva / 100));
  23.         return total;
  24. }