【问题标题】:Int variable showing wrong value - AndroidInt 变量显示错误值 - Android
【发布时间】:2015-10-03 17:08:34
【问题描述】:

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

    float correctX=((getWidth()/599)*x);
    float correctY=((getHeight()/740)*y);

我得到的结果是:x = 520 y = 900。

而logcat输出日志:DETAILS---------Width: 1080. Heigth: 1533. X Value: 520. Y Value: 450

为什么?我不知道,我快疯了,我什至不知道它的语法是否正确,哈哈。

顺便说一句,我用的是安卓工作室

【问题讨论】:

    标签: java android int


    【解决方案1】:

    这是因为integer division(转至令人困惑的部门)不准确。为floats 添加一些值以使其更好。

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

    只需将correctX 更改为float

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

    【讨论】:

    • 仍然不正确。我就是这样写的: float correctX=((getWidth()/599)*x);浮动正确Y=((getHeight()/740)*y);这是我得到的 logcat 输出:DETAILS---------Width: 1080. Heigth: 1533. X Value: 520. Y Value: 450
    • 那是因为你的作业右侧仍然没有floats。它应该是:`float correctX=((getWidth()/599f)*x)`@JozefM
    • float 的实际含义是什么?
    • 什么鬼,它有效!大声笑非常感谢!!!不确定这意味着什么,一些谷歌搜索告诉我它告诉系统它应该是一个 32 位变量,但不确定为什么会产生差异
    猜你喜欢
    • 2018-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多