Aller au contenu

rtos


Carboleum

Messages recommandés

Bonjour,

 

Ca fait plusieurs années que je cherche (enfin pas tout le temps hein ;-) le moyen d'afficher les zéros après la virgule après un rtos.

 

rtos arrondi la valeur à la décimale déterminée par la variable LUPREC. donc, pour un LUPREC à 2, (rtos 1.1467) -> "1.15" ok, (rtos 1.1) -> "1.1" ok aussi, mais moi je veux "1.10"

 

J'ai pas trouvé de variable qui gère ça. Il est toujours possible de faire un lisp qui ajoute des zéro à la fin de la chaine mais c'est un peu alambiqué. Quelqu'un a-il une solution séduisante ?

 

Meric d'avance

Carboléüm, qui dessine aussi à la main -> Carboleum's sketchblog

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Aussi bizarre que cela puisse paraître, la variable de cotation DIMZIN influe sur l'affichage du retour de la fonction lisp (rtos)

 

Si (rtos 1.1 2 2) te renvoie "1.1", c'est que DIMZIN est à 8 ou plus, mets une autre valeur inférieure et le retour sera différent!

 

NB: Cela est évoqué dans l'aide sur DIMZIN

Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius

Lien vers le commentaire
Partager sur d’autres sites

  • 1 an après...

Bonjour

 

J'ai aussi cherché... pas trouvé, alors je me suis dépanné avec ce petit lisp:

 

;Argunents

;txt nombre en format texte

;n nombre de chiffres après le point

(defun AjoutZero (txt n / posdeci nouvtxt)

(setq nouvtxt ""

posdeci (if (/= nil (vl-string-search "." txt)) (+ (vl-string-search "." txt) 2))

)

(if (null posdeci) (setq nouvtxt (strcat txt ".00"))

(progn

(setq n (1- (+ posdeci n)) elm 1)

(repeat n

(setq nouvtxt (if (= (substr txt elm 1) "") (setq nouvtxt (strcat nouvtxt "0")) (strcat nouvtxt (substr txt elm 1)))

n (1- n) elm (1+ elm)

)

)

)

)

nouvtxt

)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

J'ai aussi cherché... pas trouvé, alors je me suis dépanné avec ce petit lisp:

 

C'est possible également avec rtos, comme précisé dans les messages précédents il suffit de faire attention à la valeur de DIMZIN..

 

Rapidement pour le principe une variante de ton lisp qui devrait fonctionner, (acceptant un nombre au format chaîne de caractère ou numérique):

 

(defun AjoutZero (nbr n)
 (if (numberp (setq nbr (distof (vl-princ-to-string nbr) )))
   ((lambda (v) (setvar 'dimzin 0) (setq nbr (rtos nbr 2 n)) (setvar 'dimzin v) nbr) (getvar 'dimzin))
 )
)

 

_$ (AjoutZero "5.130" 6)
"5.130000"
_$ (AjoutZero 5.13 6)
"5.130000"
_$ (AjoutZero "toto" 6)
nil
_$

 

A+

Apprendre => Prendre => Rendre

Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité