繁体   English   中英

Java浮点数学错误?

[英]Java Floating Point Math Mistake?

我正在尝试计算图像的宽高比:

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());

你试过float aspect = (new float(img.getIntrinsicWidth())) / (new float(img.getIntrinsicWidth()));

你有一个错字,你的宽度除以宽度。 应该是高度宽度。

另外,为了使眼睛更容易,你不需要为了使用花车而将两侧都分开; 如果右侧是一侧,左侧将自动转换为浮动。

float aspect = img.getIntrinsicWidth() / (float)img.getIntrinsicHeight();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM