Итак, я написал этот простой код для расчета ИМТ и предоставления результата в соответствии с введенными значениями (например: BMI + normal/obese и т. Д.). Я случайно начал испытывать его и выяснил, что это работает для всех значений, которые я ставлю в КРОМЕ вес = 73 и высотой = 1,71 ...Ошибка BMI Calculator ?! Java
package basics;
import java.util.*;
public class BMI {
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
double W, H, BMI;
System.out.print("Enter weight in kg");
W = sc.nextDouble();
System.out.print("Enter height in m: ");
H = sc.nextDouble();
BMI = W/(H*H);
System.out.println("Your BMI is : " + (int) BMI);
if (BMI < 18.5)
System.out.println("Underweight");
if (BMI >= 18.5 && BMI <= 24.9)
System.out.println("Normal");
if (BMI >=25 && BMI <= 29.9)
System.out.println("Overweight");
else
if (BMI >= 30)
System.out.println("Obese");
}
}
Я думаю, что это может быть потому, что ИМТ рассчитывается для этих значений 24.9, которое является граничным значением. Может кто-нибудь, пожалуйста, помогите мне понять это? Заранее спасибо.
Я не понимаю, в чем проблема, но я хочу рассказать вам следующее: В этом следующем выражении '(BMI> = 25 && BMI <= 29.9)' вы можете изменить последний оператор на '<' вместо '<=' и последнего числа до '30', поэтому он также будет содержать такие значения, как' 29.95'. Например: '(BMI> = 25 && BMI <30)' (Это то же самое со всеми другими операторами IF) –