这段代码给了我错误的输出,我不知道为什么,我疯了。
float correctX=((getWidth()/599)*x);
float correctY=((getHeight()/740)*y);
我得到的结果是:x = 520 y = 900。
和logcat输出日志:DETAILS ----------宽度:1080。高度:1533。X值:520。Y值:450
为什么?我没有任何线索,我疯了,我甚至不知道它是否正确的语法大声笑。
我使用android studio btw
答案 0 :(得分:2)
这是因为integer division(转到令人困惑的部门)的不准确之处。将一些值投射到float
以使其更好。
int correctX = (int)((1080f/599)*520);
只需将correctX
更改为float
float correctX = (1080f/599)*520;