我正在运行这段代码:
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
val2 = 2.5
val3 = 2.5
val4 = 2
有人可以向我解释为什么val3和val4的评价不同吗? ,实际上他们都在进行相同的计算?
答案 0 :(得分:0)
(y/x-10)
正在处理整数。直到此计算之后才会应用浮点数,这将产生2
。
y
和x
都是整数。所以,20(x
的值) - 10 = 10.然后25/10(仍然处理整数 - 没有浮点数)= 2.
答案 1 :(得分:0)
它们的评估方式不同。
val3 = float(y / float(x - 10))
val4 = float(y / (x - 10)
对于val3
,类型为float(int / float)
,val4
为float(int / int)
,会先将y / (x - 10)
的结果转换为int
,然后将其投放到float
。