0

我的函数返回 0?

int ResizeLockRatio( int width, int height, int desired )
{
    int returnValue = ( height / width ) * desired;
    return returnValue; // returns 0?
}

int lockedRatioHeight = ResizeLockRatio( 1920, 1200, 1440 );

有任何想法吗?

4

1 回答 1

3
 int returnValue = ( height / width ) * desired;

你正在做整数除法,有时会被截断为 0。

您正在传递width = 1920, height = 1200,因此height/widht =1200/1920在这种情况下,整数除法将截断为 0。

编辑:您可以尝试先进行乘法运算,然后根据“Caption Obvlious”进行除法运算:

int returnValue = ( height * desired ) /width ;
于 2013-04-15T22:59:28.060 回答