gpt4 book ai didi

c - 为什么我的简单舍入技巧不起作用?

转载 作者:太空宇宙 更新时间:2023-11-04 05:38:53 25 4
gpt4 key购买 nike

我希望如果我将 0.5 加到 double 上,然后截断该值以将 double 四舍五入为最接近的整数。但是,在以下代码中它不起作用:

#include<stdio.h>
int main()
{
int a,b,d;
double c;
a = 54325;
b = 7858;

c = a/b;
c = c+0.5; /* rounding trick */

d = (int)c; /* truncate integer */
printf("%d\n",d);
return 0;
}

54325/7858 的结果应该是 6.91,所以如果我加上 0.5 然后截断该值,我的答案应该是 7。但是,我得到的结果是 6。为什么?

最佳答案

 c=a/b;

是整数除法,因为 / 的两个操作数都是整数类型。即使这里的 cdouble 类型也是如此。

要进行浮点除法,您需要 / 运算符的一个操作数是浮点类型:

 c = (double) a / b;

关于c - 为什么我的简单舍入技巧不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24999303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com