Bonjour.
Je débute en langage C++ et j'ai créé ce court programme qui calcule une taxe d'achat. Le montant de cette taxe est de 9.975%. Quand je calcule cette taxe et que je l'affiche j'obtiens le bon résultat mais aussitôt que j'additionne le montant entré à la taxe ça donne souvent de mauvais résultats.
Par exemple: Si j'entre 100$ comme montant, ça me retourne 9,98$ de taxes ce qui est correct. Mais quand j'additionne 100 + 9,98 ça me retourne 109,97 et non 109,98. J'ai ajusté la précision à 2 en début de programme et je n'affiche que les 2 premiers chiffres après le point avec la commande fixed.
Le problème je crois, c'est que je dois arrondir la taxe et l'affecter à une variable avant de l'additionner au montant entré. Ou bien alors je dois effectuer d'autres calculs pour obtenir le bon résultat. J'ai fais quelques recherches sur le sujet mais je n'ai pu trouver de solution simple et concrète et ça semble plus compliqué qu'il n'y parait au premier abord, car tout ce que j'ai vu sur le sujet jusqu'à présent c'est que les gens ont des manières différentes de répondre au problème. Et il semblerait que le langage C++ ne soit pas vraiment approprié pour ce genre de calcul.
Voila le code de mon programme:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 #include <iostream> int main() { std::cout.precision (2); float montant; float taxe; float total; std::cout<<"Entrez le montant: "; std::cin >> montant; std::cin.ignore(); taxe = montant * .09975; std::cout <<"Taxe: " << std::fixed << taxe << "\n"; total = montant + taxe; std::cout <<"Total: " << std::fixed << total << "\n"; return 0; }
Partager