派生类中定义的重载函数(cnt*price)一直返回指数!!!不返回正常的整型数

#ifndef QUOTE_H
#endif QUOTE_H

#include
using namespace std;

class Quote
{
public:
Quote();
Quote(const string &book,double sales_price):
bookNo(book),price(sales_price){};
string isbn() const{return bookNo;};
virtual double net_price(size_t n) const
{
return n*price;
}
//virtual ~Quote()=0;
protected:
double price;
private:
string bookNo;
};

class Bulk_quote:public Quote
{
public:
Bulk_quote();
Bulk_quote(const string &book,double sales_price):Quote(book,price){};
double net_price(size_t cnt) const override
{
return cnt*price;
}
};
double print_total(ostream &os, const Quote &item,size_t n)
{
double ret = item.net_price(n);
os << "ISBN:" << item.isbn()<<endl;
os << "# sold: "<< n << " total due: "<< ret<<endl;
return ret;
}

你函数定义的返回值不是double类型吗?

浮点数超过一定范围就会用科学记数法(指数)表示,要么你加(int)强制转换为整型,要么你用std::cout << std::fixed;这样就不会使用科学记数法了。