#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;这样就不会使用科学记数法了。