C ++编译器从double转换为int

时间:2016-12-02 14:37:43

标签: c++

我正在用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

};

我真的无法理解为什么会发生这种情况,所以如果有人能解释我,我们将非常感激。

1 个答案:

答案 0 :(得分:1)

set::precision(3)要求输出中有3位数字。

这就是你得到的。