Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Administration
Administration Forum d'entraide sur l'administration du serveur Oracle
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 14/12/2007, 11h11   #1
Membre du Club
 
Inscription : novembre 2006
Messages : 190
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 190
Points : 67
Points : 67
Par défaut pd arrondissement millime

bonjour
voila mon pb c'est de voir si c'est possible d'arrondir un montant au 5 millime prét: par exemple la fontion round me donne
Code :
1
2
3
4
5
6
 
SELECT round(115.127,3) FROM dual;
 
ROUND(115.127,3)
----------------
         115,127
je veux avoir 111,125
Code :
1
2
3
4
5
6
 
SELECT round(115.123,2) FROM dual;
 
ROUND(115.123,2)
----------------
          115,12
je veux avoir 115,10
Code :
1
2
3
4
5
6
 
SELECT round(115.123,1) FROM dual;
 
ROUND(115.123,1)
----------------
           115,1
je veux avoir 115,000
y 'a t'il une fonction capable de satisfaire ce besoin ou je dois la programmée
en plsql
merci d'avance
daliok est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2007, 13h55   #2
Rédacteur
 
Inscription : décembre 2002
Messages : 2 397
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2002
Messages : 2 397
Points : 3 298
Points : 3 298
Citation:
Envoyé par daliok Voir le message
bonjour
voila mon pb c'est de voir si c'est possible d'arrondir un montant au 5 milliemes prét:y 'a t'il une fonction capable de satisfaire ce besoin ou je dois la programmée en plsql
Au vu de vos exemples, c'est un peu plus subtil que d'arrondir aux 5 millièmes, puisque vous faites varier le nombre de décimales !
Je pense que vous ne pouvez effectivement pas faire l'économie d'une fonction personnalisée, du genre de la suivante :
Code :
1
2
3
4
5
6
7
8
CREATE OR REPLACE FUNCTION format05(nombre number, precision int) RETURN number
IS
diviseur number:=power(10, precision-1)*2;
begin
RETURN trunc(nombre*diviseur + 0.5)/diviseur;
end;
/
SHOW errors
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
SQL> col resultat format 999.000
SQL> SELECT format05(115.127,3) resultat FROM dual;
 
RESULTAT
--------
 115.125
 
SQL> SELECT format05(115.123,2) resultat FROM dual;
 
RESULTAT
--------
 115.100
 
SQL> SELECT format05(115.123,1) resultat FROM dual;
 
RESULTAT
--------
 115.000
C'est bien ça ?
__________________
Consultant / formateur Oracle indépendant
Certifié OCP 10g et 11g, sécurité 11g
Pomalaix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2007, 14h47   #3
Membre du Club
 
Inscription : novembre 2006
Messages : 190
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 190
Points : 67
Points : 67
merci énormement Pomalaix c'est bien ça.
daliok 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 02h42.


 
 
 
 
Partenaires

Hébergement Web