Int变量显示错误的值 - Android

时间:2015-10-03 17:08:34

标签: java android int

这段代码给了我错误的输出,我不知道为什么,我疯了。

    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

1 个答案:

答案 0 :(得分:2)

这是因为integer division(转到令人困惑的部门)的不准确之处。将一些值投射到float以使其更好。

 int correctX = (int)((1080f/599)*520);

或者

只需将correctX更改为float

即可
 float correctX = (1080f/599)*520;