Вывод рублей и копеек

Рейтинг: 0Ответов: 1Опубликовано: 24.05.2023

Есть такая задача, чтобы вывести эти данные на экран:

СЧЕТЧИК СТОИМОСТИ ПРОЕЗДА
Введите начальные показания одометра: 13505
Введите конечные показания одометра: 13810
Вы проехали 305 км. Из расчета 8 руб. 50 коп. за км, стоимость проезда равна 2592 руб. 50 коп.

Проблема заключается в том, что не знаю, как вывести отдельными значениями 8 и 50 ("Из расчета 8 руб. 50 коп. за км,"). У меня получается только вывести 8,5 руб, при этом расчет корректно проведен, а нужно вывести раздельно, соответственно, чтобы расчет также был корректен.

Если лезу в переменные, то делаю только хуже. Заранее благодарна.

Вот что у меня написано:

public class Main {
    public static void main(String[] args) {

        final int PENNY_IN_RUBLE = 100;

        int odometr1, odometr2, distance, rate, penny = 850;
        double price, ruble;

        Scanner input = new Scanner(System.in);

        System.out.print("Введите начальные показания одометра: ");
        odometr1 = input.nextInt();

        System.out.print("Введите конечные показания одометра: ");
        odometr2 = input.nextInt();

        ruble = penny / PENNY_IN_RUBLE;

        distance = odometr2 - odometr1;
        price = ruble * distance;

        System.out.println("Вы проехали " + distance + " км. " +
                "Из расчета " + ruble + " руб. " + penny + "коп. cтоимость поездки составила " + price + " руб. " + penny + " коп.");

    }
}

Выводится неверный расчет и нет корректного разделения на рубли и копейки:

Введите начальные показания одометра: 13505
Введите конечные показания одометра: 13810
Вы проехали 305 км. Из расчета 8.0 руб. 850коп. cтоимость поездки составила 2440.0 руб. 850 коп.

Ответы

▲ 2Принят

Вам может помочь оператор % - остаток от деления. С помощью него будет удобно считать коппеечную часть. Кроме того, не совсем согласен с переменной penny в выводе результата. У вас одна переменная отвечает абсолютно за разные значения. Так быть не должно. Желательно ввести новые переменые. Пример расчета может быть таким:

public class Test { public static void main(String[] args) {

    final int PENNY_IN_RUBLE = 100;

    int odometr1, odometr2, distance, rate, penny = 850;
    int price, ruble;

    Scanner input = new Scanner(System.in);

    System.out.print("Введите начальные показания одометра: ");
    odometr1 = input.nextInt();

    System.out.print("Введите конечные показания одометра: ");
    odometr2 = input.nextInt();

   


    ruble = penny/PENNY_IN_RUBLE; // считаем сколько рублей стоит 1 км
    int coins = penny%PENNY_IN_RUBLE;  // считаем копейки

    distance = odometr2-odometr1;  //считаем киллометраж общий

    price = distance*penny;     // считаем цену в копейках за весь пробег

    // по аналогии находим рублевую часть и копеечную часть:

    int ruble_result = price/PENNY_IN_RUBLE;

    int coins_result = price%PENNY_IN_RUBLE;


    System.out.println("Вы проехали " + distance + " км. " +
            "Из расчета " + ruble + " руб. " + coins + "коп. cтоимость поездки составила " + ruble_result + " руб. " + coins_result + " коп.");

}
}

Консоль:

Введите начальные показания одометра: 13505 
Введите конечные показания одометра: 13810 
Вы проехали 305 км. Из расчета 8 руб. 50коп. cтоимость поездки составила 2592 руб. 50 коп.

Process finished with exit code 0