我用下面的等式得到0,我确定这是我想念的东西,但过去几天这一直困扰着我。
int BASE_SIZE = 8;
Point screenSize = new Point(1440,2000);
mMaxSize = mScreenSize.x/BASE_SIZE;
// This line is the line causing issue.
int surfaceViewSize = mMaxSize * ((BASE_SIZE-1)/BASE_SIZE);
这不管我是否将变量设为整数,如果我使用Math.round,我将它变为double,任何东西。我不能为我的生活弄清楚这一点。
答案 0 :(得分:3)
此整数除法:
(BASE_SIZE-1)/BASE_SIZE
结果
int surfaceViewSize = mMaxSize * 0;
您需要将其中一个操作数转换为double或float
用以下内容替换您的操作:
mMaxSize = 1.0*mScreenSize.x/BASE_SIZE;
int surfaceViewSize = mMaxSize * ((1.0*BASE_SIZE-1)/BASE_SIZE);
答案 1 :(得分:2)
int surfaceViewSize = (mMaxSize * (BASE_SIZE-1))/BASE_SIZE;
试试这只是一个大括号问题