CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

这里加个0.5是什么作用?

楼主SnowFoxMM(雪山小狐)2004-12-01 12:42:07 在 C/C++ / C++ 语言 提问

这是一个关于人民币的程序,很简单  
   
  #include<iostream.h>  
   
  class   RMB{  
  public:  
      RMB(double   value   =   0.0);  
      operator   double(){   return   yuan   +   jf   /   100.0;   }  
      void   display(){   cout   <<   (yuan   +   jf   /   100.0)   <<   endl;   }  
  protected:  
      unsigned   int   yuan;     //   这是元  
      unsigned   int   jf;         //   这是分  
  };  
   
  RMB::RMB(double   value)  
  {  
      yuan   =   value;  
      jf   =   (   value   -   yuan   )   *   100   +   0.5;       //   就是这个0.5,是啥意思????  
  }  
   
  void   main()  
  {  
      RMB   d1(2.0),   d2(1.5),   d3;  
      d3   =   RMB((double)d1   +   (double)d2);                  
      d3   =   d1   +   d2;                                                            
      d3.display();  
  }  
  问题点数:20、回复次数:17Top

1 楼SnowFoxMM(雪山小狐)回复于 2004-12-01 13:22:39 得分 0

upTop

2 楼hcj2002(流浪者·躬自厚而薄责于人 )回复于 2004-12-01 13:26:53 得分 0

四舍五入??  
  Top

3 楼healer_kx(甘草(楼主揭贴吧,我们这些上班灌水的也不容易))回复于 2004-12-01 13:32:20 得分 0

晕死,这不是清华那本书上的嘛,但是0。5我记得不干吗了,也许是逻辑问题吧。Top

4 楼SnowFoxMM(雪山小狐)回复于 2004-12-01 13:34:32 得分 0

加0.5怎么能起到四舍五入作用呢?Top

5 楼danky()回复于 2004-12-01 13:36:02 得分 0

你所帖出的都是类的函数部份,我们都不知道函数中所引用的类的成员变量是什么数据类型是很难做出准确判断的,只能猜测而已!如果用的是浮点型的话应该出于精度的问题吧!Top

6 楼MCR()回复于 2004-12-01 13:36:15 得分 0

四舍五入Top

7 楼yjh1982(血精灵)回复于 2004-12-01 13:36:38 得分 0

精度调节?Top

8 楼SnowFoxMM(雪山小狐)回复于 2004-12-01 14:03:48 得分 0

还有什么不清楚呢?这是完整的程序!  
   
  我想知道加0.5的作用和原理Top

9 楼zhaopeng3(菜鸟)回复于 2004-12-01 14:07:17 得分 15

四舍五入  
  0.4+0.5   =   0.9,取整后为0  
  0.5+0.5   =   1.0,取整后为1Top

10 楼libbyliugang()回复于 2004-12-01 15:02:24 得分 0

四舍五入   没错Top

11 楼iiml(哦,我明白了)回复于 2004-12-01 15:06:57 得分 0

四舍五入  
  Top

12 楼healer_kx(甘草(楼主揭贴吧,我们这些上班灌水的也不容易))回复于 2004-12-01 15:11:37 得分 0

哦,难怪最近RMB汇率起伏不定的~Top

13 楼260005065(宁独遗与世,亦当皓首穷经,但有所得,无悔无怨。)回复于 2004-12-01 15:16:05 得分 0

就是四舍五入啊,有什么奇怪的??  
  double*100+0.5转换成unsigned   int   啊。Top

14 楼sunlu_eric(天使预备役)回复于 2004-12-01 15:17:45 得分 0

是进位!!!Top

15 楼freeskypx(吸血鬼伯爵)回复于 2004-12-01 15:38:15 得分 0

是四舍五入  
  yuan   =   value;  
      jf   =   (   value   -   yuan   )   *   100   +   0.5;  
  Top

16 楼freeskypx(吸血鬼伯爵)回复于 2004-12-01 15:43:04 得分 5

看这两句就可以啦  
  yuan   =   value;//取整数部份  
  jf   =   (   value   -   yuan   )   *   100   +   0.5;//小数点后第三位四舍五入  
   
   
  return   yuan   +   jf   /   100.0;   //将jf还原成小数,加到Yuan后面  
   
  是将Value小数点后第三位四舍五入Top

17 楼jalang(冻天)回复于 2004-12-01 15:52:20 得分 0

去尾知道吧.浮点型转整型就是用的去尾法.所以如果要用四舍五入就要加0.5Top

相关问题

  • !在这里有什么作用?
  • using在这里是什么作用
  • 这句话放这里起什么作用
  • $ORACLE_HOME/bin/svrmgrl,这里svrgmrl的具体作用是什么?
  • 运算符重载这里起什么作用
  • <%!private int j=0;%> 这里!的作用是什么?
  • comp = new Component(this);这里的this到底起了什么作用?
  • 我是cb爱好者,请问高手'"+Edit1->Text+"'语句中++双加号和""双引号在这里其什么作用??为什么要这么做呢??
  • select a.facctcode from a2005001laccount a ,a2005001fcwvch b where a.facctcode=*b.fkmh *在这里有什么作用?
  • MulDiv()什么作用?

关键词

  • rmb
  • double

得分解答快速导航

  • 帖主:SnowFoxMM
  • zhaopeng3
  • freeskypx

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo