对于如下输入,可以使用Float.compare
来查找数组中最大的浮点数吗?
Float[] v = {0.38118651972530804, 0.3580139606405057, 0.7358862700995704};
float max = -1;
for (int i = 0; i < v.length; i++)
if (Float.compare(max,v[i]) > 0) max = v[i];
有更好的方法吗?或者可能存在一些精度错误?
答案 0 :(得分:2)
我会使用一个集合并调用max()方法。请参阅:here
答案 1 :(得分:0)
如果数组中的所有值都小于-1,则可能会出错。最好将max初始化为v [0]。
并且,您的代码找到最小的元素。不是最大的元素。
Float[] v = {0.38118651972530804, 0.3580139606405057, 0.7358862700995704};
float max = v[0];
for (int i = 1; i < v.length; i++)
if (Float.compare(max, v[i]) < 0) max = v[i];
答案 2 :(得分:0)
这个怎么样 -
float max = v[0]; // the first item in array
// Loop through all items starting the second one
for (int i = 1; i < v.length; i++)
{
if (v[i] > max) // If current item is bigger, update max to current item
{
max = v[i];
}
}
答案 3 :(得分:0)
一行怎么样:
Float max = Collections.max(Arrays.asList(v));