Я все еще учусь, поэтому go легко для меня.
У меня следующая валютная система:
3 разных монеты, назовем их Родонит (красный цвет), Даранен (золотой цвет ) и Делис (серый цвет). 100 делисов равны 1 даранену, 100 дараненам равны 1 родониту. Нет ограничений с родонитами.
Итак, я пытаюсь умножить эту валюту на двойной коэффициент. Вот моя функция:
public static Price multiply(Price price, double factor) {
int de = (int)Math.round(price.getDelis() * factor);
int da = (int)Math.round(price.getDaranen() * factor);
int r = (int)Math.round(price.getRhodoniten() * factor);
if ((de / 100) >= 1) {
de = de % 100;
da += de / 100;
}
if ((da / 100) >= 1) {
da = da % 100;
r += da / 100;
}
return new Price(r, da, de);
}
Итак, когда я умножаю, если умноженный delis больше 100, он должен быть добавлен к daranen, то же самое количество для daranen и родонитов.
Вот пример, умноженный на коэффициент 2: верхний перед умножением, нижний умножается.
Как видите, умножение само работает, но не добавление остатка к следующему более высокому типу монеты. Я рад любой помощи, все еще новичок в java.