[英]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.