当从float转换为int时,float结果如何四舍五入到整数?
有时我在整数变量之间做一些复杂的算术运算(包括乘法、除法等),然后再把结果转换成整型。
的例子:
result = (int) ((int1 + int2) * int3 / int4);
有时结果会四舍五入到最接近的整数,有时结果会四舍五入到较低的整数,即使浮点结果更接近于上整数,有时结果会向上或向下四舍五入2个整数(即如果结果是-150.69,结果可能会= -149)。
在从float到int的转换中有一些规律,还是取决于情况?
提前感谢。
的例子:
int1 = 31;
int2 = -1366;
int3 = 50;
int4 = 1000;
结果应该是-66.75,但是返回的结果是-65。
在您的代码中,除非int1
到int4
实际上是浮点数,否则您没有任何浮点类型,因此您的问题与您的代码无关。
对于问题本身,浮点数到整数的转换总是通过截断(丢弃小数部分)进行的。对于舍入,标准库有许多函数,如floor
、ceil
、round
等,可以执行不同类型的舍入。