IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Calculer la nouvelle TVA


Sujet :

C++

  1. #1
    Nouveau membre du Club Avatar de bj303931
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2016
    Messages : 75
    Points : 27
    Points
    27
    Par défaut Calculer la nouvelle TVA
    Bonjour, j'ai un prix avec une TVA à 5.5% appliquée dessus.
    J'aimerais trouver le prix qui serait avec une TVA à 19.5%.

    Mon raisonnement: enlever la TVA à 5.5% (prix=prix-0.055*prix) et remettre la TVA à 19.5% ! (prix=prix+0.195*prix)

    Voici le code qui affiche 28.14 au lieu de 28.23, pourquoi ?

    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
    #include<iostream>
     
    int main(){
    float old;        
    float neew;
    float prix;
     
    std::cin>>old;
    old=old/100;
    std::cin>>neew;
    neew=neew/100;
    std::cin>>prix;
     
    prix=prix-old*prix;
    prix+=neew*prix;
    std::cout<<prix;
     
    return 0;}
    Merciii!

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 113
    Points : 32 958
    Points
    32 958
    Billets dans le blog
    4
    Par défaut
    Vu le nombre de calculs, je mise sur des arrondis à chaque étape.
    Essaye avec des double plutôt que des float, tu auras déjà une meilleur approximation.

    Et qu'il n'y ait aucun 5.5 ou 19.5 apparent dans le code, c'est normal ?
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Nouveau membre du Club Avatar de bj303931
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2016
    Messages : 75
    Points : 27
    Points
    27
    Par défaut
    oui, c'est normal, l'utilisateur met ce qu'il veut comme TVA!
    J'ai déjà essayer avec long double ou floor mais ça ne marche pas.
    Avec long double il y a plus de chiffres apres la virgule.
    Avec floor et mulitplié par 100, il y a 2 chiffres apres la virgule et des 0.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Chef de projets retraité
    Inscrit en
    Juillet 2011
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Chef de projets retraité
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2011
    Messages : 419
    Points : 1 096
    Points
    1 096
    Par défaut
    Bonjour,

    Oui mais non

    La méthode normale pour ce calcul c'est :
    Pour obtenir le prix hors taxes, tu dois diviser ton prix TTC par 1,055
    puis pour obtenir le prix TTC à 19,5 tu multiplie le résultat par 1,195

    soit du coup la formule suivant (prix/1,055)*1,195 ou prix * (1.195 / 1.055) soit prix*1,132701422 qu tu devras éventuellement arrondir


    Cordialement

  5. #5
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    tu es sûr de ton calcul pour le retranchement de l'ancienne TVA ? ...

    edit : grillé par acaumes ^^
    Je vais en profiter pour faire deux remarques :
    - floor fait un arrondi par le bas, il n'y a que peu de chance que ça te soit utile dans des calculs de prix,
    - long double est un alias de double pour MSVC.
    Plus je connais de langages, plus j'aime le C.

  6. #6
    Nouveau membre du Club Avatar de bj303931
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2016
    Messages : 75
    Points : 27
    Points
    27
    Par défaut
    Merci, j'ai trouvé, le code qui marche.

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    #include<iostream>
    #include<math.h>
     
    int main(){
    long double old;
    long double neew;
    long double prix;
    long double sup;
    long double inf;
     
    std::cin>>old;
    old=1+old/100;
    std::cin>>neew;
    neew=1+neew/100;
    std::cin>>prix;
     
    prix=prix/old;
    prix=prix*neew;
    sup=ceil(prix*100)/100;
    inf=floor(prix*100)/100;
     
    sup=prix-sup;
    inf=prix-inf;
    sup=ceil(1000*sup);
    inf=floor(1000*inf);
     
    if(sup>0){if(sup<5){prix=floor(prix*100)/100;}
    	  else{prix=ceil(prix*100)/100;}}
     
    if(inf>0){if(inf<5){prix=floor(prix*100)/100;}
    	  else{prix=ceil(prix*100)/100;}}
     
    std::cout<<prix<<std::endl;
     
    return 0;}

  7. #7
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 612
    Points : 30 611
    Points
    30 611
    Par défaut
    Salut,

    Heu, juste un tout petit truc... Si tu as un prix incluant 5.5% de tva, ce prix correspond donc à ... 105.5% du prix hors tva, et si la TVA devait être de 19.5%, cela correspondrait à ... 119.5% du prix hors TVA.

    Du coup, le plus simple pour effectuer le changement est de ramener le prix à 1% en divisant ton prix d'origine par 100+l'ancien taux et à le multiplier par... 100+ le nouveau taux, sous une forme qui pourrait être proche de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    std::cout<<"Introduisez l'ancien taux de TVA (%):";
    float old;
    std::cin >>old;
    std::cout<<"Introduisez le nouveau taux de TVA (%):";
    float actual;
    std::cin >>actual;
    std::cout<<"introduisez le prix TVA comprise à l'ancien taux :";
    float price;
    std::cin>> price;
    float newPrice = price / (100f+old)*(100f+actual);
    std::cout<<" le prix au nouveau taux de tva ("<<actual<<") est de "<<newPrice<<"\n";
    Le problème du code que tu présente, c'est "simplement" que tu te trompe dans ta formule essayant de calculer le prix hors tva "simplement" en divisant le prix tva comprise par 100, alors que tu dois le diviser par 100+le taux de tva (hé oui 100% + 19.5% de TVA, ca fait bel et bien... 119.5% )
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] calcul de 2 tva séparées dans un état
    Par david29170 dans le forum IHM
    Réponses: 3
    Dernier message: 16/06/2011, 17h32
  2. [AC-2003] Calcul de la TVA
    Par KANIN dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 28/09/2009, 12h12
  3. [MySQL] script calcul devis avec tva
    Par faucon54 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/05/2007, 12h18
  4. Réponses: 1
    Dernier message: 10/01/2006, 21h35
  5. Modifier un champs texte avec une fonction PHP (calcul TVA)
    Par Stella2809 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/11/2005, 01h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo