C语言里“/”在表示两个数相除时 “向下取整”缺陷解决方案

 我来答
宿玥兰同光
2019-09-24 · TA获得超过3970个赞
知道大有可为答主
回答量:3059
采纳率:33%
帮助的人:436万
展开全部
1.
向上取整问题:如果整除
X/M=N,则
X=N*M
+
d,其中余数
d
的范围是
[0,M-1]考虑数字
Y
=
X+(M-1)
=
(N*M+d)
+
(M-1)
=
(N+1)*M
+
(d-1),很容易发现,当
d>1
时,整除
Y/M=N+1,就是说在
X+(M-1)
实现了向上取整;当d=0时,整除Y/M=N,结果是准确的值。2.
数据类型转换问题:数字后面添加
.f 表示这是一个浮点数,浮点数的运算符
/ 是普通的除法,不是整除,得到的结果仍然是浮点数,转换成整数的时候直接把小数点后面的舍去了,不能实现向上取整。3.
向下取整不能说是C的缺陷。否则,反过来,难道默认向上取整就不是缺陷?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式