C / C ++中的整数除法会导致精度问题吗?

edwardliang2019

假设我们有三个整数(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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章