gpt4 book ai didi

每当使用除法时,C 程序中的计算结果总是为 0

转载 作者:行者123 更新时间:2023-11-30 18:23:07 24 4
gpt4 key购买 nike

我使用两个不同的变量来除以 intdouble 中的变量。当我使用以下内容时,这些工作正常:

int cost
cost = 40;
cost = (cost / 400) * 20 * 2;

为此,该方法工作正常,我得到了正确的结果,即 4,但是当我使用变量 cost 并将其放入 header 中时,例如:

#define cost 40
int total_cost;
total_cost = (cost / 400) * 20 * 2;

这对我来说总是导致0,但我不知道为什么。即使我将 printf%d%f 一起使用,这仍然会给出 0 的结果。

最佳答案

您正在进行整数除法 - 向下舍入。

因此:

cost / 400

返回零,因为 cost = 4040/400 向下舍入为零。

您应该做的是使用浮点类型,例如double

编辑:

double cost
cost = 40;
cost = (cost / 400) * 20 * 2;

#define cost 40
double total_cost;
total_cost = ((double)cost / 400) * 20 * 2;

关于每当使用除法时,C 程序中的计算结果总是为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7720078/

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