Java float的问题:它不返回分数

Java float的问题:它不返回分数,java,android,Java,Android,我对浮点数不返回分数感到困惑。守则: float max_stops; int maxBellows = 330; int lensFocal = 135; max_stops = (maxBellows / lensFocal ); 返回2.0而不是2.44 你能帮我把这个弄对吗?将maxbellow和lensFocal转换成浮动。由于它们都是整数,maxBellows/lensFocal返回一个整数,当它被分配到max\u stops时,该整数将被转换为float。至少应将Max波纹管和

我对浮点数不返回分数感到困惑。守则:

float max_stops;
int maxBellows = 330;
int lensFocal = 135;
max_stops =  (maxBellows / lensFocal );
返回2.0而不是2.44


你能帮我把这个弄对吗?

maxbellow
lensFocal
转换成浮动。由于它们都是整数,
maxBellows/lensFocal
返回一个整数,当它被分配到
max\u stops
时,该整数将被转换为float。至少应将
Max波纹管
lensFocal
中的一个转换为浮点数。

Max波纹管
lensFocal
转换为浮点数。由于它们都是整数,
maxBellows/lensFocal
返回一个整数,当它被分配到
max\u stops
时,该整数将被转换为float。至少应将
maxBellows
lensFocal
中的一个强制转换为浮点。

整数除以整数将产生整数

将其中一个操作数设为浮点,例如

max_stops =  ((float)maxBellows / lensFocal );

整数除以整数得到整数

将其中一个操作数设为浮点,例如

max_stops =  ((float)maxBellows / lensFocal );

两个整数的/运算符返回一个整数。
您需要除以135.0或将变量强制转换为float或其他任何形式,两个int的/运算符返回一个int。
您需要除以135.0或将变量强制转换为浮点值或其他任何值

您的问题不在于
float
,而在于
int
-这
Max波纹管/lensFocal
是两个
int
值的除法,这意味着它将产生
int
结果,不管结果是否被放入
float
变量中。要获得
float
结果,必须在计算之前将其中一个操作数强制转换为
float

max_stops =  maxBellows / (float)lensFocal;

您的问题不在于
float
,而在于
int
——这个
maxwellows/lensFocal
是两个
int
值的除法,这意味着它将有一个
int
结果,不管该结果是否被放入
float
变量中。要获得
float
结果,必须在计算之前将其中一个操作数强制转换为
float

max_stops =  maxBellows / (float)lensFocal;
试试这些:

max_stops =  ((float)maxBellows / lensFocal );

or

max_stops =  (maxBellows / (float) lensFocal );
试试这些:

max_stops =  ((float)maxBellows / lensFocal );

or

max_stops =  (maxBellows / (float) lensFocal );

@koenbro你可以接受这个答案:)
谢谢,这解决了它
@koenbro你可以接受这个答案:)
谢谢,这个问题解决了