假设我们有三个整数(int,long,long long,unsigned int等)a, b, c
。通常情况下,
c = a / b;
会导致分数截断。但是,c最终可能会得出不正确的值吗?
我不是在说a / b可能超出范围,c's type.
而是在C中实现整数除法。a / b
首先执行生成浮点型中间结果,然后中间值被截断吗?
如果是这样,我想知道中间值精度的损失是否会导致c的值不正确。例如,假设a / b的精确值为2,但中间结果为1.9999...
,则c最终将得出不正确的值1。这种情况会发生吗?或者,如果整数除法总是得出正确的值,期望值在c的类型范围内?
首先执行/ b会产生浮点型中间结果吗
就语言而言,没有中间结果。
如果期望值在c的类型范围内,整数除法是否总是会得出正确的值?
是。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句