【发布时间】:2017-03-16 03:14:42
【问题描述】:
我不确定为什么 CHARGE_1 被评估为 .80,无论我输入的数量是 1 还是 19。其他 if 语句也是如此。我不断得到奇怪的数字,比如 .80 和 .64 作为输出。请帮我弄清楚这有什么问题。
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
const int MONTHLY_FEE = 10;
const double CHARGE_1 = .10;
const double CHARGE_2 = .08;
const double CHARGE_3 = .06;
const double CHARGE_4 = .04;
int numChecks;
double charge1Total = numChecks * CHARGE_1;
double charge2Total = numChecks * CHARGE_2;
double charge3Total = numChecks * CHARGE_3;
double charge4Total = numChecks * CHARGE_4;
cout << "Please enter how many checks you have used.\n";
cout << "and I will tell you how much your charge is. ";
cin >> numChecks;
if((numChecks > 0) && (numChecks < 20))
{
cout << "Your total is $" << fixed << setprecision(2) <<
(charge1Total + MONTHLY_FEE) << ".";
}
else if ((numChecks >= 20) && (numChecks <= 39))
{
cout << "Your total is $" << fixed << setprecision(2) <<
(charge2Total + MONTHLY_FEE) << ".";
}
else if ((numChecks >= 40) && (numChecks <= 59))
{
cout << "Your total is $" << fixed << setprecision(2) <<
(charge3Total + MONTHLY_FEE) << ".";
}
else if (numChecks >=60)
{
cout << "Your total is $" << fixed << setprecision(2) <<
(charge4Total + MONTHLY_FEE) << ".";
}
}
【问题讨论】:
-
您在获得支票号码之前计算您的总数。放在 cin >> numChecks; 行之后。
标签: c++ if-statement logic conditional