У меня есть этот метод в моем классе фракции,Как преобразовать отрицательное смешанное число в неправильную фракцию?
public void toImproper() {
if (denom == 0) {
denom = 1;
}
num = (denom * coeff) + num;
coeff = 0;
}
Я использую несколько тестов в этой фракции калькуляторе Я делаю такие как -1_1/2 * 2, но я получаю 1 как мой ответ (следующий абзац очищает это).
Вначале я помещаю его в неправильную форму, так как получаю вход, но делает его неправильным. СНОВА дает мне некоторые проблемы. Из-за моего метода он делает -1_1/2 = -1/2. -1_1/2 в неправильной форме должно быть -3/2, но мой метод дает -1/2. Это связано с тем, что он умножает коэффициент на знаменатель, а затем добавляет числитель. Итак, для числителя вы получаете (-1 * 2) + 1. Как я могу это исправить? Я думал об использовании Math.abs(); но затем он делает все негативы положительными.
Спасибо!
нельзя сказать, что вы пытаетесь сделать. Каков вклад и какой результат вы ожидаете? Что такое 'coeff'? Что такое 'num' и где вы его инициализируете? – ajb
Извините, coeff - это целое число в моей смешанной дроби (-1), num = числитель, и оно инициализируется ранее в программе. Я ожидал -3/2, но я получаю -1/2. – Jop
ОК, это помогает уточнить. Для записи я не думаю, что «коэффициент» - это правильный термин для части целого числа, которая является частью путаницы. – ajb