我有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;
}
错误可能导致精度损失:float required:int
答案 0 :(得分:1)
a[b[i]]
b[i]
是一个浮点数,因此您尝试使用float作为数组的索引。错误消息告诉您正在使用浮点数,但需要一个int。
答案 1 :(得分:0)
您不能使用“b”数组返回的float来访问“a”数组。你必须转换为int。
答案 2 :(得分:0)
数组的索引是整数,因此您不能使用float来尝试访问数组中的特定元素。您需要更改数组的类型,或者将浮点数从b[i]
转换为int,然后将其用作访问a
的索引。
答案 3 :(得分:0)
我不是故意粗鲁,而是为什么?
无论您是否无法使用浮点值引用数组的索引,这就是您收到该错误的原因。如果你真的必须那么你需要将b [i]的值转换为int。
答案 4 :(得分:0)
每个人都已经指出数组索引是整数,但如果使用int(b[i]
进行转换,则可能会出现舍入错误。首先尝试对其进行舍入,然后进行转换:
a[int(Math.round(b[i])]++