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

WinDev Discussion :

Amortissement dégressif : calcul d'annuité d'un remboursement constant [WD14]


Sujet :

WinDev

  1. #1
    Membre du Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Mars 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2007
    Messages : 54
    Points : 53
    Points
    53
    Par défaut Amortissement dégressif : calcul d'annuité d'un remboursement constant
    BONJOUR CHERS AMIS,

    J'ai un vrai soucis. Au fait je suis entrain de développer une application de finance et je me trouve confronter à une erreur dont je ne comprends pas la cause. En effet j'ai des tableau de calcul d'amortissement de crédit dont les calculs marchent parfaitement. Je décide donc de faire ma gestion sous Windev 14 et il se trouve que le résultat de calcul de mon annuité n'est plus correct.
    J'ai capital emprunté : 4 000 000 000
    taux annuel : 8%
    nombre d’échéances : 28
    sous Excel ou Access, j'ai ramené le taux annuel à un taux semestriel en procédant comme suit :
    txint1 = (SAI_Taux1 + 1) ^ (6 / 12) - 1

    Ensuite l'annuité est obtenue en faisant :
    annuité = Cptal1 * (txint1 / (1 - (1 + txint1) ^ -Nbre_Période))

    annuité = 237926 715

    par contre les mêmes formules sous Windev 14 me donnent :
    annuité = 237 928 000

    Quel est le problème s'il vous plait?

    Merci pour votre soutien.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    927
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 927
    Points : 2 113
    Points
    2 113
    Par défaut
    Bonjour,

    N'est-ce pas là un problème courant en programmation, qui est l'utilisation de types "trop petits" pour faire des "gros" calculs ?

    Si oui, voir du côté du type numérique Monétaire pour Windev.


    Un monétaire est un réel codé sur 10 octets.Un monétaire peut avoir jusqu'à 23 chiffres significatifs (17 maximum pour la partie entière, 6 maximum pour la partie décimale) et peut prendre une valeur entre -604 462 909 807 314 587,353 087 et +604 462 909 807 314 587,353 087.

    Le type monétaire est conseillé pour éviter les erreurs d'arrondi dues au codage binaire des réels.
    "If you can't teach it then you don't know it."

  3. #3
    Rédacteur/Modérateur

    Avatar de dsr57
    Homme Profil pro
    Analyste programmeur senior
    Inscrit en
    Octobre 2003
    Messages
    1 139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Analyste programmeur senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 139
    Points : 4 681
    Points
    4 681
    Billets dans le blog
    22
    Par défaut
    Bonjour

    +1 pour le type monétaire, une piste aussi avec le type numérique

    Bon dev
    ------------------------------------------------------------------------------------------------------------------------------------------
    Mon message vous a aidé, pensez à remercier . La discussion est résolue, n'oubliez pas le tag
    ------------------------------------------------------------------------------------------------------------------------------------------
    Site perso : Formation, Expérience, Réalisations, ...
    Blog : Le Blog de DSR57 - Programmation WinDev

  4. #4
    Membre du Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Mars 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2007
    Messages : 54
    Points : 53
    Points
    53
    Par défaut
    Apparemment ça doit être effectivement un problème de type. Mais comment avoir la meilleure précision.
    J'ai changé le type des champs comme demandé par les internautes en lieu et place du monétaire précedemment donnant la valeur Annuité = 237 928 000 en numérique haute précision.

    Cette fois avec les types de champs numérique j'ai la valeur Annuité = 237 925 380

    Or Excel et Access donnent Annuité = 237 926 715 ce qui est juste.

    Je suis planté là au risque de revenir à mon fichier excel.

  5. #5
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 075
    Points : 2 441
    Points
    2 441
    Par défaut
    Bonjour,

    Il y a peut-être une perte de précision dans les calculs intermédiaires ou avec les variables intermédiaires, voire des arrondis (in)volontaires.

    A ce stade, pour vous répondre en connaissance de cause, au-delà de la méthode générale que vous nous avez exposée, il nous faudrait voir le code réel, en ce compris les définitions de toutes les variables utilisées.


    Or Excel et Access donnent Annuité = 237 926 715 ce qui est juste.
    "ce qui est juste" :
    • cela signifie-t-il que vous avez d'autres confirmations (extérieures) de la valisité de ces résultats ?
      Ou bien que vous avez mis une première méthode au point sous Access ou Excel, puis fait le nécessaire pour que la seconde fournisse un résultat concordant, et que vous considérez ensuite le résultat issu de votre méthode habituelle comme la norme, sans pour autant l'avoir validée ?
    • vous utilisez peut-être la même bibliothèque de fonctions.

    Donc, êtes-vous objectivement certain que votre réponse "MS" est plus valable que la réponse "WD" et que c'est bien WD qui in fine laisserait une imprécision (ceci, après élimination des des scories liées à la précision des types etc) ?



    Hemgé

  6. #6
    Rédacteur/Modérateur

    Avatar de dsr57
    Homme Profil pro
    Analyste programmeur senior
    Inscrit en
    Octobre 2003
    Messages
    1 139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Analyste programmeur senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 139
    Points : 4 681
    Points
    4 681
    Billets dans le blog
    22
    Par défaut
    Bonjour


    D'après l'aide en ligne sur le type de variable Numérique :

    • Lors de l'affectation d'un numérique par une valeur (valeur directement saisie, fournie par une fonction, ...), cette valeur est automatiquement convertie en réel par le compilateur
    • Pour forcer l'affectation d'un numérique, utilisez 0n devant la valeur.


    Peut être une piste sur l'erreur de résultat, sinon il faut vérifier le résultat étape par étape

    Bon dev
    ------------------------------------------------------------------------------------------------------------------------------------------
    Mon message vous a aidé, pensez à remercier . La discussion est résolue, n'oubliez pas le tag
    ------------------------------------------------------------------------------------------------------------------------------------------
    Site perso : Formation, Expérience, Réalisations, ...
    Blog : Le Blog de DSR57 - Programmation WinDev

  7. #7
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Bonjour,

    pour ce genre de calculs, j'essaye toujours de passer par une formule la plus complète possible sans calcul intermédiaire. Ensuite, le type est très significatif dans le résultat car il va y avoir un arrondi dans beaucoup de cas.

    le formule à reprendre serait en une fois :

    annuité = Cptal1 * (((SAI_Taux1 + 1) ^ (6 / 12) - 1) / (1 - (1 + ((SAI_Taux1 + 1) ^ (6 / 12) - 1)) ^ -Nbre_Période))

    Pour être également persuadé que ce n'est pas WinDev qui serait bon et non pas Excel, il faudrait changer le type des cellules de calcul pour afficher les décimales ...

    bon courage,

    Nicolas

  8. #8
    Membre du Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Mars 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2007
    Messages : 54
    Points : 53
    Points
    53
    Par défaut
    Ok, J'essaie vos propositions et je vous informe de la suite.

    Merci beaucoup pour votre appui.

  9. #9
    Membre du Club
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Mars 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2007
    Messages : 54
    Points : 53
    Points
    53
    Par défaut
    Merci Beaucoup chers amis.
    Effectivement le problème se trouvait au niveau des arrondis.
    J'ai juste copier collé la formule proposé par Nicolas_Jeanneau. Ca merveilleusement marché.
    Une fois de plus merci à la grande famille des développeurs de developpez.net.
    Merci chers amis

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

Discussions similaires

  1. VBA: Calcul emprunt,annuités, intérêts
    Par Elo97133 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 23/07/2012, 09h51
  2. [AC-2003] Calcul amortissement sur un bien immobiler
    Par hyppo74 dans le forum Access
    Réponses: 10
    Dernier message: 01/09/2010, 09h46
  3. Algo pour calculer des montants de remboursement
    Par code.nemesis dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 16/12/2008, 00h06
  4. Calcul d'un remboursement d'emprunt
    Par Philippe608 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/10/2007, 19h37
  5. Y-a t-il plusieurs algorithmes de calcul de l'amortissement d'un prêt?
    Par kouka dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 12/09/2007, 13h33

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