如果我像下面这样乘以一个浮点数和整数,为什么所有的乘法都会产生不同的结果?我期望得到一致的结果。我认为在两种情况下,int值在乘法之前会被隐式转换为float。但是似乎存在差异。这种处理方式的原因是什么?
感谢您,Thorsten。
int multiply(float val, int multiplier)
{
return val * multiplier;
}
int multiply2(float val, int multiplier)
{
return float(val * multiplier);
}
float val = 1.3f;
int result0 = val * int(10); // 12
int result1 = 1.3f * int(10); // 13
int result3 = multiply(1.3f, 10); //12
int result4 = multiply2(1.3f, 10); // 13
感谢您,Thorsten。