Здесь должно быть две ошибки, но я их не вижу - PullRequest
0 голосов
/ 27 июня 2019

Новая ошибка:

import java.util.Scanner;

public class BMICalculator {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.print("Length in meters: ");
        double length = input.nextDouble();

        System.out.print("Weight in kilos: ");
        double weight = input.nextDouble();

        double bmi = weight / length * length;

        System.out.printf("BMI");

        input.close();
    }
} 

Ответы [ 2 ]

1 голос
/ 27 июня 2019

Вы рассматриваете переменные meter и bmi для типа double.Тем не менее, выражение в правой части присваивания является операцией деления между int, что приведет к потере точности.

Вам потребуется привести один из операндов к правой стороне, чтобы удвоить, чтобы сохранить точность.

double meter = (double) centimeter / 100;
double bmi = (double) weight / (meter * meter);
0 голосов
/ 27 июня 2019

В вашем System.out.printf вы используете несуществующую переменную length.Как я понимаю, там должна быть переменная meter.

Я также исправил опечатку в первом System.out.print в Length слове.

Фиксированный класс выглядит следующим образом ( ОБНОВЛЕНИЕ: также исправил целочисленное деление, которое было целью фактического вопроса):

import java.util.Scanner;

public class BMICalculator {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.print("Length in centimeter: ");
        int centimeter = input.nextInt();
        double meter = ((double) centimeter) / 100; // fixed integer division by casting to double

        System.out.print("Weight in whole kilo: ");
        int weight = input.nextInt();

        double bmi = ((double) weight) / (meter * meter); // fixed integer division by casting to double

        System.out.printf("BMI for someone who is %.2f meter long, and weight %d kilo is %.1f", meter, weight, bmi);

        input.close();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...