zba*_*rni 0 java integer libgdx
我使用libGDX在Java中创建了一个应用程序.我需要使用屏幕高度和1080的比例.所以我创建了一个名为rh的浮点数,它等于Gdx.graphics.getHeight()/ 1080
float rh = (Gdx.graphics.getHeight()/1080);
Run Code Online (Sandbox Code Playgroud)
就我而言,我的屏幕高度为1200像素.所以在我的情况下,rh应该是1.111111 ......但rh变为1.如果屏幕的高度低于1080像素,则rh为0.为什么会发生这种情况我该怎么办?
请帮忙!提前致谢.
PS:Gdx.graphics.getHeight()以nr像素获取屏幕的高度.
Sar*_*tal 10
试试这个:
float rh = (Gdx.graphics.getHeight()/(float)1080);
Run Code Online (Sandbox Code Playgroud)
问题是你的getHeight()方法会返回一个int,当java除以两个整数时,结果是一个int,之后,java将该值初始化为左边的变量.
除以2之后int,执行整数除法,结果为a int.如果将结果存储在float/ double变量中,则将其转换为float/ double但值仍然是int(即没有分数).
为了执行浮点除法,您要划分的至少一个数字必须是a float或double.如果两者都是int,你可以投下其中一个:
float rh = Gdx.graphics.getHeight()/(float)1080;
Run Code Online (Sandbox Code Playgroud)
要么
float rh = (float)Gdx.graphics.getHeight()/1080;
Run Code Online (Sandbox Code Playgroud)
或没有铸造
float rh = Gdx.graphics.getHeight()/1080.0;
Run Code Online (Sandbox Code Playgroud)