Obliczanie wysokości faktury za zużycie energii – co robię źle?

0

Witam,
chcę napisać program który zapyta użytkownika o odczyt licznika (prąd) za zeszły miesiąc i za obecny miesiąc a następnie obliczy wysokość faktury za obecne zużycie zakładając że cena wynosi 0.9493 /kWh i do tego dochodzi koszt stały 320 /rok. Czy ktoś możne podpowiedzieć mi, co robię źle? To mój kod:

#include <iostream>
#include <iomanip>
using namespace std;
void powerCalc();
int main()
{
    char answer;
    do {
        powerCalc();
        cout << "\nOne more time (Y/N) ?";
        cin >> answer;
    } while (answer == 'Y' || answer == 'y');
    return 0;
}

void powerCalc()
{
    int kWh = 0.9493;
    int pmread = 0;
    int cmread = 0;
    int usageMonth = 0;
    int totalPrice = 0;
    cout << "Enter previous month read value : ";
    cin >> pmread;
    cout << "Enter current month read value : ";
    cin >> cmread;
    usageMonth = cmread - pmread;
    totalPrice = (usageMonth * kWh) + (320 / 12);
    cout << "This month's bill is    : " << totalPrice << endl;
}

screenshot-20181111182658.png

3

int - oznacza liczbę całkowitą, natomiast ty nie operujesz na liczbach całkowitych, jak zmienisz typ, to zachowa się ok.

3

Rozszerzając posta @szarotka:

    int kWh = 0.9493;

jest równoważne z

    int kWh = 0;

Użyj double:

    double kWh = 0.9493;

(320 / 12)

jest równoważne z

(26)

Użyj literałów zmiennoprzecinkowych:

(320.0 / 12.0)

    int totalPrice = 0;
    totalPrice = (usageMonth * kWh) + (320 / 12);

znów int, więc obetnie do części całkowitej. Jeśli nie takie miałeś zamierzenie - użyj double.

0

Super, działa!
Dziękuję bardzo!!

1 użytkowników online, w tym zalogowanych: 0, gości: 1