簡體   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