我正在用c ++编写一个简单的类来模拟卡支付并进行简单的算术运算,编译器将我的double变量转换为int。在我的课堂上,我有一个makePayment
方法,它返回double
并且工作正常。问题出现在我尝试charge
我的卡片时,似乎某个类balance
变量从double
更改为int
,因为在我{{1}之后我的卡每次操作或当我打印charge
时它返回一个整数。
balance
以下是我在主要功能
中进行的测试class DebitCard {
public:
DebitCard();
bool makePayment(double amount);
const double& getBalance()
{ return balance; }
void dailyInterest()
{ balance *= interest; }
void chargeCard(double amount)
{ balance += amount; }
private:
string card_number;
short pin;
double balance;
double payment_fee; // percentage fee for paying with the card
double interest; // daily interest
//double charge_tax; // percentage taxing for charing the card
};
我真的无法理解为什么会发生这种情况,所以如果有人能解释我,我们将非常感激。