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你可以接受这个答案:)谢谢,这个问题解决了代码>