Chinaunix首页 | 论坛 | 博客
  • 博客访问: 204405
  • 博文数量: 51
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 426
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-24 08:05
文章分类

全部博文(51)

文章存档

2015年(3)

2013年(1)

2011年(4)

2010年(8)

2008年(2)

2007年(18)

2006年(15)

我的朋友

分类: C/C++

2007-06-13 11:32:30

 f=(3*(log(Cm)/log(2)+0.5)+6)/b+9;   (1)
 f=1/b*(3*(log(Cm)/log(2)+0.5)+6)+9; (2)
    这两个表达式看上去表达了同一个意思,但是结果完全不同。前者的值是波动变化的,后者的值恒定是9。为这个问题困扰了我一天,后来查手册,才发现如果/运算的两个数中有一个数为实数,则结果是double型。如果运算两端的数都为整数,则结果为整数。真让人羞愧!
   例如5/3=1,这也就是为什么(2)中的f的值恒为9的原因,因为b是整数,所以1/b=0。
   小的细节决定成败,从小事做起。
阅读(15076) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~