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 に答える