Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour à tous,
Je travaille sur un projet très important et j'ai urgemment besoin des fonctions financières et mathématiques pour pouvoir effectuer certaines opérations.
Je suis à l'écoute de vos réponses
merci d'avance.
Je travaille sur un environnement windows XP SP2, avec Powerbuilder 11.0 et une Base de données sous Oracle 10g
Hors ligne
patricktobou a écrit:
Bonjour à tous,
Je travaille sur un projet très important et j'ai urgemment besoin des fonctions financières et mathématiques pour pouvoir effectuer certaines opérations.
Je suis à l'écoute de vos réponses
merci d'avance.
Je travaille sur un environnement windows XP SP2, avec Powerbuilder 11.0 et une Base de données sous Oracle 10g
Précise ton besoin. C'est vaste les fonctions mathématiques et financières.
Mais dans PB, à par les fonctions mathématiques de base il n'y a pas grand chose.
Il faut repartir des bons vieux livres de math fi et écrire soit même les fonctions les plus complexes (calcul d'intérêts, etc.) ou écrire des fonctions de BDD qui utilisent les capacités du SGBD (souvent plus pointu dans ce domaine)
Hors ligne
Bonjour,
Ta question englobe un large sujet. Il serait peut être mieux de nous soumettre plus précisément ton problème.
La réponse est en générale dépendante de l'architecture de ton projet que tu es le seul à connaître. Il est parfois meilleur en terme de performances de réaliser certain calcul financier à l'aide de procédures stockées et non pas en powerbuilder ....
Powerbuilder dispose de toutes les fonctions mathématiques de base. Je ne vois pas de limitations à pouvoir réaliser tous les calculs qu'on souhaite.
(A priori nous étions deux à rédiger une réponse en parallèle, mais je vois que nous avons la même vision des choses)
Hors ligne
Bonjour à tous,
Je travaille sur un projet de microfinance et je m'occupe de la gestion des crédits. Alors, pour ressortir le tableau d'amortissement, je dois calculer les intérêts, l'amortissement fixe, le capital restant à chaque période, je dois tenir compte de la période de différé s'il y'en a et du mode de traitement choisi (Dégressif ou Progressif), du terme de périodicité etc...
Vous voyez un peu c'est un module qui demande d'implémenter beaucoup de formules comme ça et j'aimerais avoir une liste de fonctions pour faire cela.
J'ai parcouru l'aide de PB mais je n'ai pas vu des fonctions pour calculer la puissance, le logarithme, etc...
J'ai vu quelques fonctions mathématiques comme cos, sin mais j'aimerais avoir une liste complète de fonctions comme en VB6
Merci.
Hors ligne
Une petite précision
J'ai une simulation faite sur Excel concernant ces calculs mais en utilisant les fonctions d'excel comme VPM, Var et les outils mathématiques d'excel. J'aimerais refaire cette simulation en PB
Merci
Hors ligne
patricktobou a écrit:
je n'ai pas vu des fonctions pour calculer la puissance, le logarithme, etc...
Exp, Log, LogTen
Hors ligne
Bonjour,
Pour les fonctions mathématiques, c'est du standard :
Puissance : ^
Logarithme : log, logten
Pour la liste : Help -> System Functions by category -> Numeric Fonctions
Hors ligne
Bonjour à tous,
J'ai un soucis avec l'opérateur de puissance: ^
Lorsque je calcule par exemple 0,00664^0.8333 , Powerbuilder me donne 0 comme résultat alors que la calculatrice de windows me donne 0,015318373713113622091974875715806.
Lorsque je calcule les puissances entières positives comme par ex: 2^3 ou 3^4 , PB me donne un bon résultat mais lorsque l'exposant est négatif comme par ex: 2^(-3), PB me donne une réponse fausse mais j'ai réussit à contourner ça en faisant 2^(-3) = 1 / 2^3 comme en mathématiques et j'obtiens 1/8 = 0.125 . Comment calculer les puissances lorsqu'on a des décimaux en exposant car l'opérateur ^ de PB ne gère pas ces cas là.
Merci pour votre aide
J'utilise une version PB 11.0 et je me connecte à une BD Oracle 10g.
Je travaille sur un projet de microfinance et j'implémente beaucoup de formules mathématiques et financières.
Hors ligne
patricktobou a écrit:
J'ai un soucis avec l'opérateur de puissance: ^
Lorsque je calcule par exemple 0,00664^0.8333 , Powerbuilder me donne 0 comme résultat alors que la calculatrice de windows me donne 0,015318373713113622091974875715806.
J'ai essayé chez moi et ça fonctionne.
Je te conseil de mettre 0.00664^0.8333 au lieu de 0,00664^0.8333 car PB considère la virgule comme séparateur de groupe.
Quant à ta variable de stockage, utilise un décimal
A+
Hors ligne
Ce n'est pas un problème d'arrondi lié aux types de variables utilisées dans les calculs?
Hors ligne
en fait j'ai écrit une fonction qui calcule le remboursement d'échéances et je détermine le taux proportionnel en faisant ce calcul:
// i = taux d'intérêt annuel // t = taux équivalent à un taux annuel decimal i, t i = 8 t = ( (1+i/100)^(1/12) ) - 1 messagebox(" t = ", t) //Le message m'affiche t = 0 au lieu de 0.0066443 par exemple
Je ne fais aucun arrondi. Je fais un simple calcul pour déterminer le taux équivalent.
Merci
Hors ligne
En principe messagebox prend 2 strings, il faudrait faire un messagebox(" t = ", string(t))
ça m'étonne d'ailleurs que le compilateur ne chougne pas avec ta syntaxe
pour être bien sûr tu peux aussi utiliser le mode debug plutôt que des messagebox
NB :
Hors ligne
Bonjour,
J'ai fait un copier-coller de ton code et l'exécution sous PB 11.2.8542 (Windows Vista) ne pose aucun problème. J'ai bien la bonne valeur décimale affichée dans la messagebox.
Parcontre, je me suis fait la même réflexion que erasorz sur la syntaxe du messagebox. Effectivement, il semble maintenant plus nécessaire de faire le casting sous PB 11.0, ça fonctionne sans problème et aucun message d'avertissement de PB.
As-tu la dernière version d'EBF ?
Hors ligne
messagebox("toto",t)
t doit etre un long.
c'est comme s'il t'affichait par defaut messagebox("toto",string(long(t)))
lorsque t est à nulle, le messagebox ne s'affiche pas.
Hors ligne
Bonjour,
J'ai eu la même idée. Mais dans mon test, les décimales s'affichent tout à fait correctement dans la messagebox sans aucun casting (sous toute réserve PB 11.2.8542).
Il peut peut être essayer de forcer le nombre de décimal à utiliser :
decimal {10} i, t
Hors ligne
Pour info, après un détour par le Browser de mon PB 10.5 (build 4523), onglet "System", objet "systemfunctions", voici la signature condensée de la fonction MessageBox :
messagebox ( string c, {boolean|double|longlong|string} t[, icon i[, button b[, integer d]]] ) returns integer
Le texte (argument "t") n'a donc plus en général à être transtypé : PB sélectionne la bonne version de MessageBox.
Hors ligne