Вывод рублей и копеек
Есть такая задача, чтобы вывести эти данные на экран:
СЧЕТЧИК СТОИМОСТИ ПРОЕЗДА
Введите начальные показания одометра: 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 коп.
Ответы (1 шт):
Вам может помочь оператор % - остаток от деления. С помощью него будет удобно считать коппеечную часть. Кроме того, не совсем согласен с переменной 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