Carboleum Posté(e) le 21 mai 2013 Posté(e) le 21 mai 2013 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
Patrick_35 Posté(e) le 21 mai 2013 Posté(e) le 21 mai 2013 Salut (rtos 1.1 2 2) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
bonuscad Posté(e) le 21 mai 2013 Posté(e) le 21 mai 2013 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
-Olivier- Posté(e) le 21 mai 2013 Posté(e) le 21 mai 2013 Bonjour, Attention toutefois à la variable DIMZIN.Le bit 4 supprime les zéros en la fin du nombre.Le bit 8 supprime le zéro avant la virgule. Avec dimzin à 12 : $ (rtos 0.1 2 2) ".1" OlivierPS : grillé par Bonuscad :D
Carboleum Posté(e) le 21 mai 2013 Auteur Posté(e) le 21 mai 2013 Merci à tous, je vais voir cela dès demain :-) Carboléüm, qui dessine aussi à la main -> Carboleum's sketchblog
denisf Posté(e) le 24 février 2015 Posté(e) le 24 février 2015 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)
VDH-Bruno Posté(e) le 24 février 2015 Posté(e) le 24 février 2015 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
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant