|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : février 2005 Messages : 12 ![]() |
Bonjour,
Je souhaite effectuer un petit calcul sur SAS (un produit suivi d'un quotient, avec des réels), mais le résultat est erroné en raison des arrondis qu'effectue SAS. Les nombres servant au calcul sont stockés correctement mais ils sont arrondis pour le calcul (lorsque je fais un "proc print" sur ces variables, il affiche d'ailleurs ces valeurs arrondies). Comment faire pour que SAS effectue le calcul correctement, sans effectuer d'arrondi ? Merci ! |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 150 ![]() |
Tu peux utiliser la fonction round(). Il y a des posts a ce sujet il me semble. N'hesites pas a revenir vers nous si ca ne conveint pas exactement a ce que tu veux faire.
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : février 2005 Messages : 12 ![]() |
En fait, ce que je voudrais faire, ce serait plutôt l'inverse : "dérounder" ! C'est SAS qui semble utiliser subrepticement, sans qu'on le lui demande, la fonction round !
|
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Biostatisticien Inscription : juin 2009 Messages : 1 150 ![]() |
Ok je vois ce que tu veux faire. Tu peux nous faire parvenir un cas avec donnes et code stp?
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : février 2005 Messages : 12 ![]() |
Oui . Voici le code ;
Code :
DATA t;SET t;x_cale=calage*x/x_sum;run; calage= 78 x = 1.7999997139 x_sum=49.119992971 et x_cale=2.4411764706 (au lieu de 2.85830614360451) En attendant, je regarde comment insérer une table Merci ! |
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Curieux parce qu'avec tes données j'ai bien :
Code :
Peux-tu regarder quelles sont les longueurs (LENGTH) des variables CALAGE, X, X_SUM et X_CALE ? |
||
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : février 2005 Messages : 12 ![]() |
Les longueurs sont toutes à 8, sauf Calage qui est à 6
|
|
|
00
|
|
|
#8 | ||
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 012 ![]() |
hello;
SAS arrondi au 14 éme chiffre après la virgule. puis tu mets length 8. ; format 32.20 par exemple ( pour l'affichage). Code :
|
||
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : février 2005 Messages : 12 ![]() |
Ah ben oui ! En spécifiant la longueur de x_cale à 8, cela fonctionne correctement. Bizarre, car la longueur était pourtant déjà à 8 (par défaut) : c'est la raison pour laquelle je pensais que le problème ne venait pas de là !
Merci ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com