Кодирование математической задачи, чтобы найти разницу между двумя числами, которые могут быть отрицательными - PullRequest
0 голосов
/ 04 ноября 2010

Я пытаюсь написать некоторый код c (цель c), который будет принимать баланс банковского счета и желаемый баланс от пользователя и производить значение, которое я могу добавить или вычесть из текущего баланса для достижения желаемого баланса.

Я думаю, что я слишком усложнил, вот что у меня есть ...

//get desired amount to variable dblDesiredBalance
//get balance from database to variable balFromDB

double addAmount = fabs(balFromDB) + fabs(dblDesiredBalance);
double minusAmount = fabs(dblDesiredBalance) - fabs(balFromDB);

// create amount to add to db
if (dblDesiredBalance < 0 ) {
    if (balFromDB < 0 ) {
        dblCommitToDB = balFromDB - minusAmount;
    } else {
        dblCommitToDB = balFromDB - addAmount;
    }
} else {
    if (balFromDB < 0 ) {
        dblCommitToDB = balFromDB + addAmount;
    } else {
        dblCommitToDB = balFromDB + minusAmount;
    }
}
// update db with dblCommitToDB

Кто-нибудь может мне помочь?

1 Ответ

8 голосов
/ 04 ноября 2010

Почему бы не начать с простой алгебры:

current_balance + delta = desired_balance

и затем решить для дельты:

delta = desired_balance - current_balance

Это работает независимо от знаков - вы знаете алгебраические правила и все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...