所以我写了这个小小的功能,它应该将图像缩放到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。
答案 0 :(得分:2)
800/1080是整数除法,因为两个操作数都是int,因此它解析为零(大约0.740 ...向下舍入为零)。
要避免整数除法,请将其中任何一个转换/转换为double。你会看到结果。