【发布时间】:2023-02-24 23:03:08
【问题描述】:
我正在编写一个程序,我注意到我的 a 变量计算不正确。
这是代码:
int a = int(34 / 40 * 40);
std::cout << a << std::endl;
当我运行它时,它输出0。然而,34 / 40 * 40 是 34。
我想问题出在除法上,因为如果我用乘法 (34 / 40 = 0.85) 代替它,它就可以正常工作:
int a = int(0.85 * 40);
std::cout << a << std::endl;
输出:
34
在我的例子中,我可以只使用乘法,但是如果有人需要对变量进行除法怎么办?
【问题讨论】:
-
当你除以整数时,结果是一个整数。你要
int a = 34.0 / 40.0 * 40.0; -
34 / 40 * 40在数学方面只有 34 而不是 C++(或许多其他编程语言)。在 C++ 中,34 / 40为零,两个整数相除的结果总是另一个整数。
标签: c++