División en Java siempre resulta en cero (0)?

La función de abajo obtiene dos valores de sharedferencias, peso y altura, y los uso para calcular el IMC, Cuando imprimo el contenido de los valores obtengo los valores que he introducido en el sharedprefs (que es bueno) pero luego cuando ejecuto Una operación de división en ellos, siempre tengo 0 como resultado .. ¿Dónde está el error?

public int computeBMI(){ SharedPreferences customSharedPreference = getSharedPreferences( "myCustomSharedPrefs", Activity.MODE_PRIVATE); String Height = customSharedPreference.getString("heightpref", ""); String Weight = customSharedPreference.getString("weightpref", ""); int weight = Integer.parseInt(Weight); int height = Integer.parseInt(Height); Toast.makeText(CalculationsActivity.this, Height+" "+ Weight , Toast.LENGTH_LONG).show(); int bmi = weight/(height*height); return bmi; } 

3 Solutions collect form web for “División en Java siempre resulta en cero (0)?”

Estás haciendo división entera .

Necesita emitir un operando para double .

Usted está haciendo una división entera, emite los valores para float y cambia el tipo de datos de la variable bmi a float .

Me gusta esto:

 float bmi = (float)weight/(float)(height*height); 

También debe cambiar el tipo de retorno de su método public int computeBMI() para float .

Le recomiendo que lea esta pregunta stackoverflow.

Aquí tienes una lista de los Primitive Data Types en Java con su descripción completa.

¡Espero eso ayude!

Debido a que bmi es un entero. Puede declarar bmi o Weight, Height como números de coma flotante. Cuando utiliza enteros en una división, obtendrá división entera. Cuando se utiliza dobles / floats, se obtendrá división de punto flotante

  • Proceso de construcción de Android secreto
  • Bloqueo de hilo principal de Android que bloquea hilo de WebView
  • ¿El límite de los hilos en android?
  • Android Reproducción de archivos de película en un fondo de pantalla en vivo
  • Aplicación para Android: ¿Llamar a AsyncTask dos veces?
  • Android SimpleDateFormat, cómo usarlo?
  • ¿Por qué mi actividad de Android permanece vacía después de adquirir permisos y agregar datos de lista a él?
  • No hay opción de método DataTypeConverter en android
  • ¿Cómo anular la lista de cifrado enviada al servidor por Android cuando se utiliza HttpsURLConnection?
  • Android SQLite y enormes conjuntos de datos
  • Get Value Of Day Month forma objeto de la fecha en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.