Повышение числа на Java

Вот мой код. По какой-то причине мой ИМТ рассчитывается неправильно. Когда я проверяю вывод на калькуляторе для этого: (10/((10/100)^2))) Я получаю 1000, но в моей программе я получаю 5. Я не уверен, что я делаю неправильно. Вот мой код:

 import javax.swing.*; public class BMI { public static void main(String args[]) { int height; int weight; String getweight; getweight = JOptionPane.showInputDialog(null, "Please enter your weight in Kilograms"); String getheight; getheight = JOptionPane.showInputDialog(null, "Please enter your height in Centimeters"); weight = Integer.parseInt(getweight); height = Integer.parseInt(getheight); double bmi; bmi = (weight/((height/100)^2)); JOptionPane.showMessageDialog(null, "Your BMI is: " + bmi); } } 

^ в java не означает поднять до власти. Это означает XOR.

Вы можете использовать java’s Math.pow()


И вы можете рассмотреть возможность использования double вместо int – это:

 double height; double weight; 

Обратите внимание, что 199/100 оценивается в 1.

мы можем использовать

 Math.pow(2, 4); 

это среднее 2 к мощности 4 (2 ^ 4)

ответ = 16

Вероятно, ваш расчет является виновником. Попробуйте использовать:

 bmi = weight / Math.pow(height / 100.0, 2.0); 

Поскольку height и 100 являются целыми числами, вы, вероятно, получаете неправильный ответ при делении. Однако 100.0 является двойной. Я предлагаю вам сделать weight двойным. Кроме того, оператор ^ не имеет степеней. Вместо этого используйте метод Math.pow() .

^ не является оператором, которого вы хотите. Вы ищете функцию pow из java.lang.Math .

Вы можете использовать Math.pow(value, power) .

Пример:

 Math.pow(23, 5); // 23 to the fifth power 

Слишком поздно для OP, но все же … Перестановка выражения как:

 int bmi = (10000 * weight) / (height * height) 

Устраняет всю плавающую точку и преобразует деление на константу в умножение, которое должно выполняться быстрее. Целочисленная точность, вероятно, подходит для этого приложения, но если это не так:

 double bmi = (10000.0 * weight) / (height * height) 

все равно будет улучшением.

 int weight=10; int height=10; double bmi; bmi = weight / Math.pow(height / 100.0, 2.0); System.out.println("bmi"+(bmi)); double result = bmi * 100; result = Math.round(result); result = result / 100; System.out.println("result"+result); 
  • ListView OnItemClickListener не отвечает?
  • org.apache.http.entity.FileEntity устарел в Android 6 (Marshmallow)
  • Как вызвать веб-службу RESTful с Android?
  • Создайте библиотеку Jar для Android для распространения
  • Как использовать StringUtils в Java?
  • В чем разница между a + = b и a = + b, а также ++ и ++ a?
  • Как дождаться завершения всех задач в ThreadPoolExecutor, не закрывая Executor?
  • Android AutoCompleteTextView с чипами
  • Экранная видеозапись текущей активности Android
  • Удалить журнал вызовов в android для определенного номера
  • Прочитать pdf-файл из папки с данными
  • Давайте будем гением компьютера.