Java:将Integer除以更大的整数会导致0

时间:2016-05-06 21:52:41

标签: java android

所以我写了这个小小的功能,它应该将图像缩放到800的宽度(高度可以是任何东西)。

然而 - 当我将整数(800)除以更大的整数(例如1080)时,结果为0.

是什么导致这种情况?

            double ratio = 800 / bit.getWidth();
            double newHeight = ratio * bit.getHeight();
            double newWidth = ratio * bit.getWidth();
            Log.d("New Values:", String.valueOf(newHeight) + "/ " + String.valueOf(newWidth));
            scaleBitmap(bit, (int)newHeight, (int)newWidth);

我的意思是双倍呼叫比率为0。

1 个答案:

答案 0 :(得分:2)

800/1080是整数除法,因为两个操作数都是int,因此它解析为零(大约0.740 ...向下舍入为零)。

要避免整数除法,请将其中任何一个转换/转换为double。你会看到结果。