Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/08/2007, 03h31   #1
Membre du Club
 
Homme Stéphane
Développeur Web
Inscription : septembre 2005
Messages : 100
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 37
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Services à domicile

Informations forums :
Inscription : septembre 2005
Messages : 100
Points : 45
Points : 45
Envoyer un message via MSN à Shiva
Par défaut Fonction de calcul de prix TTC

Bonjour,
J'ai un petit problème d'arrondis avec la fonction suivante :
Code :
1
2
3
4
5
 
CREATE FUNCTION CalculPrixTTC (p_prix_ht DECIMAL, p_taux_tva DECIMAL) RETURNS FLOAT DETERMINISTIC
BEGIN
    RETURN ((p_prix_ht / 100) * p_taux_tva) + p_prix_ht;
END
Quand j'appele ma fonction comme ceci : SELECT CalculPrixTTC(100, 19.60);
J'ai 120 en résultat au lieu de 119.60
Je pense m'être planté dans les types de données...
Merci pour votre aide

Stéphane
Shiva est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2007, 08h01   #2
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
Code :
1
2
3
4
5
6
CREATE  FUNCTION CalculPrixTTC (
  p_prix_ht DECIMAL(5,2), p_taux_tva DECIMAL(5,2))
RETURNS float DETERMINISTIC
BEGIN
    RETURN ((p_prix_ht / 100) * p_taux_tva) + p_prix_ht;
END ;
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2007, 08h51   #3
Membre du Club
 
Homme Stéphane
Développeur Web
Inscription : septembre 2005
Messages : 100
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 37
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Services à domicile

Informations forums :
Inscription : septembre 2005
Messages : 100
Points : 45
Points : 45
Envoyer un message via MSN à Shiva
J'ai déjà testé ce que tu me propose et il est vrais que le résultat se rapproche de ce que je recherche mais c'est pas encore ça :
SELECT CalculPrixTTC(100, 19.60); donne 119.59999847412 alors que ((p_prix_ht / 100) * p_taux_tva) + p_prix_ht utilisé dans une requête me retourne bien 119.6000.....
Shiva est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2007, 13h29   #4
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
Dans ce cas, utilise RETURNS DECIMAL(5,2) au lieu de RETURNS FLOAT.
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/08/2007, 19h11   #5
Membre du Club
 
Homme Stéphane
Développeur Web
Inscription : septembre 2005
Messages : 100
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 37
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Services à domicile

Informations forums :
Inscription : septembre 2005
Messages : 100
Points : 45
Points : 45
Envoyer un message via MSN à Shiva
J'avais aussi testé avec decimal(5.2) et non decimal(5,2) et forcement j'avais une erreur...

La ça marche nickel, merci pour ton aide
Shiva est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h17.


 
 
 
 
Partenaires

Hébergement Web