c - 在 int 和 double 之间进行运算

标签 c math int double operand

我有一个基础 C 的家庭作业,要求我计算某些表达式,然后在程序中检查我的答案。我似乎无法通过自己的计算得到任何正确的答案...

他们要我用这些变量解决数学问题:

int a = 2;
double b = 4.7;
int c = 3;
double d = 4.2;

这是一个示例问题:

int answer1 = b+a/c-d; 

我知道因为它有一个 int 操作数,所以所有变量都转换为一个整数,所以我认为它应该看起来像这样:

(4+2)/(3-4)

我在手工操作时得到 -6 作为答案,但是当我将其作为代码输入时,它给出了 0 的答案。有人可以解释一下吗?我做错了操作顺序吗?我根本不明白计算机是如何从中得到 0 的。这是我作业中最简单的问题,我没有头绪。请帮忙!

最佳答案

你的表情

b+a/c-d

相同
b + (a/c) - d

因为 ac 都是整数,所以商 a/c 是使用整数除法计算的。这给出了 2/3 = 0。那么你有:

b - d

这是使用 float 计算的,因为 bddouble。结果为 0.5,当分配给结果 int 时,它被截断为 0。

关于c - 在 int 和 double 之间进行运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25632475/

相关文章:

c - c中的二分法程序为什么我需要在if语句之前?

javascript - 我无法理解使用 Javascript 执行以下数学方程

javascript - 在不使用递归的情况下改进连续范围的子集和算法

c - 如何在 C 中打印存储为 void * 的整数?

c - 如何以编程方式转换音频(diy)?

c++ - 减少 fgets() 中的填充次数

c - C 中一元加号 (+) 运算符的用途是什么?

math - 区分一个 2 的补码负数和相应的正数

加号运算符的 C++ 重载

php - 在 MySQL 中使用 "signed"INT?