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; } 

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

  • Android- ¿Cómo enviar datos de la actividad al servicio?
  • Programación de Android m antes de los objetos
  • Android youtube API reproduce dos o más jugadores de Youtube en una actividad principal
  • ImageView no se muestra en Nexus 5 (Android 6.0)
  • Convertir c # a puro java?
  • Casting un tipo largo de C ++ a un jlong ​​de JNI
  • Cómo analizar valores float de cadena utilizando REGEX en java
  • ¿Cómo autenticar la solicitud de POST de usuario de Android con Django REST API?
  • ¿Cuál sería una simple expresión regular para la comprobación de contraseña durante la suscripción?
  • Android: el relleno dejó un mapa de bits con color blanco
  • Pruebas de instrumentación Android con Mockito
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.