19_2.cpp
来自「本文档是(作者:钱能)《C++程序设计教程》课后习题答案。 选题编辑:张朝阳 」· C++ 代码 · 共 38 行
CPP
38 行
//19_2.cpp
#include <iostream.h>
#include <iomanip.h>
class RMB{
public:
RMB(double v =0.0):yuan(v){ jf =(v-yuan)*100+0.5; }
operator double(){ return yuan+jf/100.0; }
void display(ostream& out)
{
int n=1; //为了用两字节的¥符号,得先求整数部分位数...
for(int x=yuan; x/10; x/=10) n++;
if(n>5){ out <<"*******.**"; return; }
double t=yuan+jf/100.0;
out <<setw(7-n) <<"¥" <<setiosflags(ios::fixed)
<<setprecision(2) <<setw(n+3) <<t;
}
protected:
unsigned int yuan;
unsigned int jf;
};
ostream& operator <<(ostream& oo, RMB& d)
{
d.display(oo);
return oo;
}
void main()
{
RMB rmb(1.5);
cout <<"Initially rmb = " <<rmb <<"\n";
rmb =2.0*rmb;
cout <<"then rmb = " <<rmb <<"\n";
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?