打印

请教一个C语言的基础问题

[复制链接]
1900|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ZRL700424|  楼主 | 2010-10-11 11:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
yanwen217| | 2010-10-11 11:48 | 只看该作者
改定义为long int ,并直接写if(a>=25*70)

使用特权

评论回复
板凳
不亦心| | 2010-10-11 11:56 | 只看该作者
没有必要改long int
先除再乘
2# yanwen217

使用特权

评论回复
地板
ZRL700424|  楼主 | 2010-10-11 12:01 | 只看该作者
a本来就是整型的,难道不改成长整型就不能这样比较了?

使用特权

评论回复
5
chenczy| | 2010-10-11 12:14 | 只看该作者
按3L说的办吧,先除,这样就不用改了

使用特权

评论回复
6
ZRL700424|  楼主 | 2010-10-11 12:51 | 只看该作者
先除不知道影不影响精度?

使用特权

评论回复
7
new1988| | 2010-10-11 12:54 | 只看该作者
2501*72/100=1800.72,四舍五入的话就算1801就是了啊
这不是个常量吗?  自己算出来不就得了,干嘛那么纠结

使用特权

评论回复
8
老鱼探戈| | 2010-10-11 12:56 | 只看该作者
按2楼的。
应改成 long 型的,如果先除,也会超过255的。

使用特权

评论回复
9
ayb_ice| | 2010-10-11 13:17 | 只看该作者
if(a>=2501L*72/100)

使用特权

评论回复
10
SLEET1986| | 2010-10-11 13:46 | 只看该作者
2501*72/100=1800.72,四舍五入的话就算1801就是了啊
这不是个常量吗?  自己算出来不就得了,干嘛那么纠结
new1988 发表于 2010-10-11 12:54
:victory:

使用特权

评论回复
11
ZRL700424|  楼主 | 2010-10-11 13:48 | 只看该作者
非常感谢ayb_ice!按你说的写就可以了!

使用特权

评论回复
12
ZRL700424|  楼主 | 2010-10-11 13:50 | 只看该作者
2501*72/100=1800.72,四舍五入的话就算1801就是了啊
这不是个常量吗?  自己算出来不就得了,干嘛那么纠结
new1988 发表于 2010-10-11 12:54


是常量,但有很多地方引用,所以在文件开头处是用字符定义的,因为这个常量在不同的项目中也是经常改变的

使用特权

评论回复
13
hbicecream| | 2010-10-11 14:29 | 只看该作者
常量
编译器会把它运算出来再编译的

使用特权

评论回复
14
numLiu| | 2010-10-12 00:09 | 只看该作者
C还是要深入

使用特权

评论回复
15
mbutterfly| | 2010-10-12 08:37 | 只看该作者
请问  9L,if(a>=2501L*72/100),这样的意思是什么呢?

使用特权

评论回复
16
不亦心| | 2010-10-12 08:47 | 只看该作者
:L 这种写法俺以前也没有见过,杯具
查了下,貌似就是强制转换成 long int
15# mbutterfly

使用特权

评论回复
17
jack_shine| | 2010-10-12 09:19 | 只看该作者
学习了~~~

使用特权

评论回复
18
carbonxie| | 2010-10-12 10:40 | 只看该作者
再要精一点的话,可以做两次判断比较,先比较整除100的数,然后再用a%100取余数再比较一次,不就行了吗?

使用特权

评论回复
19
continue_| | 2010-10-15 17:43 | 只看该作者
15# mbutterfly
安的理解是这样:if(a>=2501L*72/100),
2501L中L就是说:编译器,按着数是L级别的,虽然看起来短,但你要按照L级别的来对待,long级别×int=long级别所以不会出错

使用特权

评论回复
20
善解人意| | 2010-10-21 21:38 | 只看该作者
学习了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

677

帖子

0

粉丝