[英]Java - 2 Arrays of type float - possible loss of precision found : float required : int
我有2個float類型的數組
float[] a = new float [100];
float[] b = new float [100];
我希望執行以下操作
for (int i=0; i<100; i++) {
a[b[i]]++ // Or a[b[i]] + a[b[i]] + 1;
}
發現錯誤,可能失去精度:需要浮點數:int
a[b[i]]
b[i]
是浮點數,因此您嘗試將浮點數用作數組的索引。 錯誤消息告訴您正在使用浮點數,但需要一個int。
您不能使用“ b”數組返回的浮點數來訪問“ a”數組。 您必須轉換為int。
數組的索引是整數,因此您不能使用浮點數來嘗試訪問數組中的特定元素。 您將需要更改數組的類型,或者將float從b[i]
轉換為int,然后將其用作訪問a
的索引。
我不是無禮的,但是為什么呢?
無論如何,您都無法使用浮點值引用數組的索引,這就是為什么會出現該錯誤的原因。 如果確實需要,則需要將b [i]的值強制轉換為int。
每個人都已經指出數組索引是整數,但是如果使用int(b[i]
,則可能會產生舍入錯誤。請嘗試先將其舍入,然后進行轉換:
a[int(Math.round(b[i])]++
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.