2010-11-04 3 views
-1

J'essaye d'écrire du code de c (objectif c) qui prendra un équilibre de compte de banque et un équilibre désiré de l'utilisateur et produira une valeur qui Je peux ajouter ou soustraire de la balance courante pour atteindre l'équilibre désiré.Coder un problème de maths pour trouver la différence entre deux nombres qui pourraient être négatifs

Je pense que je suis fait des choses trop compliquées, voici ce que j'ai ...

//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 

Quelqu'un peut-il me aider?

+1

Et la question est? .. – Vladimir

+0

Je ne suis pas sûr de comprendre vos besoins. Pourquoi n'est-ce pas simplement 'dblDesiredBalance - balFromDB' pour la différence et' dblCommitToDB = dblDesiredBalance'? – Rup

Répondre

8

Pourquoi ne pas commencer l'algèbre simple:

current_balance + delta = desired_balance 

puis delta pour résoudre:

delta = desired_balance - current_balance 

Cela fonctionne indépendamment des signes - que vous connaissez les règles algébriques et tous.

+0

Bah, mon algèbre et la compréhension des problèmes de texte me font parfois peur. Je vais juste +1 votre réponse et supprimer le mien. ;) –

+0

Désolé de paraître épais, mais ce qui est delta? – Jules

+1

delta est une lettre grecque couramment utilisée pour représenter une différence. La différence entre le solde actuel et l'équilibre souhaité est le delta. – plinth

Questions connexes