Повышение числа на 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); 
  • Как передать объект Bitmap из одной активности в другую
  • Зачем нужен метод main () в основном classе java
  • Не удается разрешить метод getMap ()
  • Как использовать StringUtils в Java?
  • что использует MemoryFile в android
  • Сравнение значений Integer в Java, странное поведение
  • Проблема при использовании пользовательского шрифта - «родной шрифт не может быть создан»
  • Передача функции в качестве параметра в java
  • Как заставить Android-устройство вибрировать?
  • Обновление Android 17 кажется несовместимым с внешними банками
  • Насколько велика ссылка на объект в Java и какая именно информация содержится в ней?
  • Давайте будем гением компьютера.