Java 计算纵横比返回0.0

Java 计算纵横比返回0.0,java,aspect-ratio,Java,Aspect Ratio,我正在尝试制作一种方法来计算长宽比,以便调整大小 public float ARC(int oHeight, int oWidth, float nWidth) { float h = (oHeight / oWidth) * (nWidth); return h; } 为了运行,我使用了: System.out.println(ARC(65, 375, 375)); 64被指定为Ohweight, 375至oWidth和375至nWidth 但是当我测试代码时,输出是:0.

我正在尝试制作一种方法来计算长宽比,以便调整大小

public float ARC(int oHeight, int oWidth, float nWidth)
{
    float h = (oHeight / oWidth) * (nWidth);
    return h;
}
为了运行,我使用了:

System.out.println(ARC(65, 375, 375));
64被指定为Ohweight, 375至oWidth和375至nWidth

但是当我测试代码时,输出是:0.0? 结果应该是65(这个问题已经由Chris Martin回答了,但他没有给出答案)

问题是您正在进行的是整数除法,而不是浮点除法,因此,尽管您希望:

65 / 375 = 0.17...  
你实际上得到:

65 / 375 = 0
这是因为小数部分被截断了。您需要将第一个
int
(第一个或第二个,但我发现这是可读性最高且最不容易出错的)强制转换为
float

float h = ( (float) oHeight / oWidth) * (nWidth);
(Chris Martin已经回答了这个问题,但他没有给出答案)

问题是您正在进行的是整数除法,而不是浮点除法,因此,尽管您希望:

65 / 375 = 0.17...  
你实际上得到:

65 / 375 = 0
这是因为小数部分被截断了。您需要将第一个
int
(第一个或第二个,但我发现这是可读性最高且最不容易出错的)强制转换为
float

float h = ( (float) oHeight / oWidth) * (nWidth);

65/375
等于
0
@ChrisMartin如何让它工作?我需要某种类型的0检查,将
int
s中的一个转换为
float
,这样你就可以得到浮点除法而不是整数除法了。@ChrisMartin Thx把它作为一个答案,我现在觉得很傻:/
65/375
等于
0
@ChrisMartin我怎么才能让它工作呢?我需要某种类型的0检查,将
int
s中的一个转换为
float
,这样您就可以得到浮点除法,而不是整数除法。@ChrisMartin Thx将它作为一个答案添加进来,我现在感到非常愚蠢:/