计算数学运算

Evaluating mathematical operations

本文关键字:运算 计算      更新时间:2023-10-16

我正在运行这段代码:

int x, y;
float val1, val2, val3;
x = 20;
y = 25;
val1 = x - 10;
val2 = y/val1;
val3 = float(val2);
val4 = float(y/(x-10));

以上输出:

val1 = 10


2

谁能给我解释一下为什么val3和val4的计算不同?

,而实际上它们都在做相同的计算?

它们的计算方式不同。

val3 = float(y / float(x - 10))
val4 = float(y / (x - 10)

对于val3,类型是float(int / float), val4float(int / int),将y / (x - 10)的结果先强制转换为int,然后再强制转换为float

(y/x-10)正在处理整数。在此计算之后才应用浮点数,这将产生2

yx都是整数。因此,20 (x的值)- 10 = 10。然后25/10(仍然处理整数-还没有浮点数)= 2。