Ahm... bueno, la verdad es que no tengo ni idea de por qué pasa, les dejo el código:
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!