当前位置: 首页 > 知识库问答 >
问题:

为什么在Java中1200/1080=1?[副本]

岳炎彬
2023-03-14

我用libgdx用Java做了一个应用程序。我需要使用屏幕的高度和1080的比例。因此,我创建了一个名为rh的浮点数,它等于gdx.graphics.getheight()/1080

float rh = (Gdx.graphics.getHeight()/1080);

请救命!提前谢了。

p.s:gdx.graphics.getheight()以nr的像素为单位获取屏幕的高度。

共有1个答案

仲法
2023-03-14

试试这个:

float rh = (Gdx.graphics.getHeight()/(float)1080);

问题是您的getHeight()方法将返回一个int值,当java将两个整数相除时,结果是一个int值,然后java将该值初始化为左边的变量。

 类似资料:
  • 问题内容: 运行下面的代码结果为0? 问题答案: 两个操作数(1和3)是整数,因此使用整数算术(此处为除法)。将结果变量声明为double只会导致除法后发生隐式转换。 当然,整数除法会返回除法四舍五入的真实结果。因此,0.333…此处的结果四舍五入为0。(请注意,处理器实际上不进行任何舍入,但是您仍然可以这样考虑。) 另外,请注意,如果两个操作数(数字)均以浮点数给出;3.0和1.0,甚至只是第一

  • 问题内容: 在中,将1月定义为第0个月,而不是第1个月。是否有任何特定原因? 我已经看到很多人对此感到困惑… 问题答案: 它只是Java日期/时间API的一团糟。列出问题所在将花费很长时间(而且我确定我不知道其中一半是问题)。诚然,处理日期和时间是很棘手的,但是无论如何都是这样。 帮个忙,改用Joda Time或JSR-310。 编辑:至于原因-如其他答案所述,这很可能是由于旧的C API引起的,

  • 我是一名高中生,目前正在为州学术会议(UIL)做准备。我有一个问题,我到处找,似乎找不到答案!为什么要打印0.0?

  • 问题内容: 为什么呢?如我所料是0。 问题答案: 所有移位都针对整数进行mod 32,对long进行mod 64。 从规范的第15.19节开始: 如果左侧操作数的提升类型为,则仅将右侧操作数的最低5位用作移位距离。就像右侧操作数受到掩码值0x1f的按位逻辑AND运算符&(§15.22.1)一样。因此,实际使用的移动距离始终在0到31(含)范围内。 如果左侧操作数的提升类型为,则仅将右侧操作数的六个

  • 当我们不知道任何给定对象的finalize()方法何时可以运行时,我们需要在java中重写finalize()方法的哪里?我们可以在finalize()中关闭什么类型的资源?GC调用finalize()方法的最佳机会是什么?