Código C++:
Ver original
#include <iostream> using std::cout; using std::cin; using std::endl; using std::fixed; #include <iomanip> using std::setprecision; #include "Gasolina.h" void Gasolina::empezar() { int km; int kmt = 0; int lt; int ltt = 0; double kpla; double kpl; cout << "Escriba los kilometros usados (-1 para salir): "; cin >> km; while(km > 0) { cout << "Escriba los litros: "; cin >> lt; if(lt > 0) { kmt += km; ltt += lt; kpla = static_cast<double>(km) / lt; kpl = static_cast<double>(kmt) / ltt; cout << "KPL en este abastecimiento: " << setprecision(6) << kpla << fixed << endl; // Aquí (?) cout << "Total KPL: " << setprecision(6) << kpl << fixed << endl; // y aquí. cout << "\n"; cout << "Escriba los kilometros usados (-1 para salir): "; cin >> km; } else cout << "Valor incorrecto." << endl; } }
Bueno, ahora sí.
Ingreso datos:
Kilometros usados: 287
Litros: 13
y por alguna razón en la salida me da:
KPL en este abastecimiento: 22.0769
Total KPL: 22.076923
Como verán, un double me lo muestra con 4 decimales y el otro con 6...
¿Qué he hecho mal? Ojalá alguien me explique.
Saludos!