Проблема с задачей на стоимость товара со скидкой

Добрый всем день, я в Java пока новенький. Завис со следующей задачей:

Вычислите стоимость товара с учетом скидки. Пользователь вводит цену товара в виде двух целых чисел через пробел (рубли копейки). В следующей строке он вводит размер скидки в процентах (также целое число). Цену нужно вывести так, как показано в тесте.

Учтите, что здесь не применяется округление по правилам математики. Стоимость товара всегда учитывается в большую сторону.

При выводе число рублей и копеек выводится в двух позициях (т.е. 00 коп., если копеек нет)

Решил её вот так:

import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a, b, c;
a = sc.nextInt();
b = sc.nextInt();
c = sc.nextInt();
int d = (a*100+b)*(100-c)/100/100;
int e = (int)Math.ceil((a*100+b)*(double)(1 00-c)/100%100);
System.out.print(d+" руб. ");
System.out.printf("%02d",e);
System.out.println(" коп.");
}
}

Но при данных 58 82 15 вместо “50 руб. 00 коп.” получаю “49 р. 100 коп.” Что не так?

Тут целые числа получаться будут, при делении целого на целого. Надо как ниже кастовать к double или использовать 100.0

Проблема в расчете переменной e. В данном случае, (a*100+b)*(double)(1 00-c)/100%100 умножает (a*100+b) на 1 вместо 0.85, так как пробел между 1 и 00 приводит к ошибке в написании числа 100. Правильный расчет переменной e будет выглядеть так:

int e = (int)Math.ceil((a*100+b)*(double)(100-c)/100%100);

Тогда на входе (58 82 15) программа выведет 50 руб. 00 коп., как и задумано.