统计模式(计算器Java)
Statistical mode (Calculator Java)
好吧,我正在使用 Java 编写一个算术计算器,我试图实现一个计算模式的函数。问题是由于某种原因它不能正常工作。这是函数:
public static String moda(Double[] valores){
Double resultado = null;
Integer contador = 0;
Integer contadorFinal = 0;
for(int i = 0; i < valores.length; i++){
contador = 0;
for(int j = 0; j < valores.length; j++){
if(valores[i] == valores[j]) contador++;
}
if(contador > contadorFinal){
resultado = valores[i];
contadorFinal = contador;
}
}
return "La moda es " + resultado + " que se repite un total de " + contadorFinal + " veces.";
}
出于某种原因,它总是 return 给我数组的第一个值(例如,如果 Double[] valores 包含 (4,7,7,8,8,8),它将 return我4);模式也始终为 1。
我一遍又一遍地查看代码,对我来说它看起来不错。你能帮帮我吗?
这是因为你在比较Double
,一个class。使用 double
或使用 Double.compare()
.
for(int i = 0; i < valores.length; i++){
contador = 0;
for(int j = 0; j < valores.length; j++){
if( Double.compare( valores[i], valores[j] ) == 0 )
contador++;
}
if(contador > contadorFinal){
resultado = valores[i];
contadorFinal = contador;
}
}
好吧,我正在使用 Java 编写一个算术计算器,我试图实现一个计算模式的函数。问题是由于某种原因它不能正常工作。这是函数:
public static String moda(Double[] valores){
Double resultado = null;
Integer contador = 0;
Integer contadorFinal = 0;
for(int i = 0; i < valores.length; i++){
contador = 0;
for(int j = 0; j < valores.length; j++){
if(valores[i] == valores[j]) contador++;
}
if(contador > contadorFinal){
resultado = valores[i];
contadorFinal = contador;
}
}
return "La moda es " + resultado + " que se repite un total de " + contadorFinal + " veces.";
}
出于某种原因,它总是 return 给我数组的第一个值(例如,如果 Double[] valores 包含 (4,7,7,8,8,8),它将 return我4);模式也始终为 1。
我一遍又一遍地查看代码,对我来说它看起来不错。你能帮帮我吗?
这是因为你在比较Double
,一个class。使用 double
或使用 Double.compare()
.
for(int i = 0; i < valores.length; i++){
contador = 0;
for(int j = 0; j < valores.length; j++){
if( Double.compare( valores[i], valores[j] ) == 0 )
contador++;
}
if(contador > contadorFinal){
resultado = valores[i];
contadorFinal = contador;
}
}