Java浮点数学错误?
我试图计算图像的纵横比:Java浮点数学错误?,java,android,math,floating-point,Java,Android,Math,Floating Point,我试图计算图像的纵横比: Log.d("img.width:", String.valueOf(img.getIntrinsicWidth())); Log.d("img.height:", String.valueOf(img.getIntrinsicHeight())); float aspect = ((float)img.getIntrinsicWidth()) / ((float)img.getIntrinsicWidth()); Log.d("aspect:", String.val
Log.d("img.width:", String.valueOf(img.getIntrinsicWidth()));
Log.d("img.height:", String.valueOf(img.getIntrinsicHeight()));
float aspect = ((float)img.getIntrinsicWidth()) / ((float)img.getIntrinsicWidth());
Log.d("aspect:", String.valueOf(aspect));
但是,这会产生意想不到的结果:
img.width: 297
img.height: 167
aspect: 1.0
这似乎有一个简单的答案,但我想不出来。你用宽度除以宽度。尝试将其中一个替换为高度。您有一个输入错误
float aspect = ((float)img.getIntrinsicWidth()) /
((float)img.getIntrinsicWidth());
您将宽度除以宽度,宽度始终为1,而不是除以高度:
float aspect = ((float)img.getIntrinsicWidth()) /
((float)img.getIntrinsicHeight());
这是一个打字错误,其中一个必须是身高。你正在用宽度除以宽度
float aspect = ((float)img.getIntrinsicWidth()) / ((float)img.getIntrinsicWidth());
您是否尝试过浮动方面=(新的浮动(img.getIntrinsicWidth())/(新的浮动(img.getIntrinsicWidth()))代码>您输入了一个错误,您正在用宽度除以宽度。应该是宽高比 另外,为了让眼睛看起来更容易,你不需要为一个划分使用浮点数来投射两边;如果右侧为浮动,则左侧将自动转换为浮动
float aspect = img.getIntrinsicWidth() / (float)img.getIntrinsicHeight();
没有注意到宽度/宽度,与原始海报所犯的错误相同,但认为可能存在铸造问题,因此可能尝试创建一个新实例会有所帮助。