| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 693 人关注过本帖
标题:4/3 在C++中怎样表示 ?请问
只看楼主 加入收藏
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:2 
得不出正确答案是直接把4/3弄成1了吧。所以用4.0代替就可以了。

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2013-01-21 16:52
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:2 
以下是引用SwanK在2013-1-21 12:44:24的发言:

我算球体体积
v=4/3*3.14.r*r*r
得不出正确的答案
结果正如楼上说的
用v=4.0/3.0*3.14.r*r*r 就可以了。
也可以用 v=4/(float)3*3.14.r*r*r算出正确答案来。
我好高兴啊!请继续指教,看我说的对不?
感谢大家的热情回复!

这涉及表达式类型的概念。

4 和 3 都是整数,4/3 就是整数间的除法,结果也是整数,类似小学的带余除法。用 4%3 可以得到相除的余数。不过 C 语言里的整数除法与带余除法的定义可能还有一些区别,主要体现在负数相除上。但 (a/b)*b + (a%b) = a 在 C 里应该是恒等式。
(double)4 / 3,是一个浮点数除以一个整数,只要有一个浮点数,就不是整数除法了,整个表达式也是浮点类型。4.0 / 3 也是一个道理。但 (double)(4/3) 是不行的,因为这是先除完结果已经是个整数了,再强转。
2013-01-21 16:53
快速回复:4/3 在C++中怎样表示 ?请问
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031965 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved