Diogo Posté(e) le 3 décembre 2005 Posté(e) le 3 décembre 2005 Quand je fais entget à une lwpolyline je tiens: ((-1 . ) (0 . "LWPOLYLINE") (330 . ) (5 . "8A49") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "Perfil-Vector") (100 . "AcDbPolyline") (90 . 2) (70 . 0) (43 . 0.0) (38 . 0.0) (39 . 0.0) (10 296009.0 3.62247e+006) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 299981.0 3.62004e+006) (40 . 0.0) (41 . 0.0) (42 . 0.0) (210 0.0 0.0 1.0)) Le coordinate Y est dans le format cientific: 3.62247e+006 Comment peu je obtenir le resultat en decimal? Merci
Tramber Posté(e) le 3 décembre 2005 Posté(e) le 3 décembre 2005 Même avec (distof(rtos 3.62247e+006) 2), je ne trouve pas la façon de faire. Pourtant j'ai dit à DISTOF de renvoyer le résultat en décimal. La preuve que ta demande n'a pas d'utilité. Ceci dit (rtos .... 2) permet d'obtenir le résultat souhaité sous forme de Chaine si ca fait avancer le problème. Je fais aussi la remarque suivante : si tel est l'affichage, c'est que le chiffre peut être converti en entier. (fix 3.62247e+006) fonctionne alors. [Edité le 3/12/2005 par Tramber] Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
didier Posté(e) le 3 décembre 2005 Posté(e) le 3 décembre 2005 Bonsoir je ne sais pas quelle est la limite des nombres décimaux. en revanche, travailler sur des très grands nombresdonne bien des surprises,copiez-collez ce petit bout de lisp,et cherchez l'erreur :mad: que se passe t'il à la septième boucle ? (setq test 100 compteur 1)(repeat 10 (setq test (* 10 test)) (alert (strcat (itoa compteur) "\n"(rtos test 2 8))) (setq compteur ( + 1 compteur)) ) amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
(gile) Posté(e) le 3 décembre 2005 Posté(e) le 3 décembre 2005 En effet, il vaut mieux pour un cartographe ne pas trop travailler en millimètres ;) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Tramber Posté(e) le 3 décembre 2005 Posté(e) le 3 décembre 2005 que se passe t'il à la septième boucle ? C'est épouvantable, comment se fait-il qu'un entier ne puisse plus être fiable quand on dépasse 10 caractères ? Ma langue au chat.... Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
bonuscad Posté(e) le 3 décembre 2005 Posté(e) le 3 décembre 2005 La manipulation des nombres entier est forcée dans une fourchette allant de -32 768 à +32767 ceci pour une version 2000-2002 Il me semble que sous 2005 cette limite soit doublée, et tourne autour de 64000 ?(voir l'aide LISP sur (getint) pour avoir les valeur entière limites suivant la version) Comment peu je obtenir le resultat en decimal? Si c'est pour affecter à une variable pour du calcul, cela n'est pas utile. Si c'est pour afficher une info,utilise (rtos comme dit ci dessus. (atof (rtos 1234567.0987654321 2 16)) 1.23457e+006(rtos (atof (rtos 1234567.0987654321 2 16)) 2 16) "1234567.098765432" Les écarts de conversions et de calcul existent, cela exige de faire des (equal R1 R2 Fuzz) pour des test d'égalité de réel. Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
(gile) Posté(e) le 4 décembre 2005 Posté(e) le 4 décembre 2005 Il me semble que sous 2005 cette limite soit doublée, et tourne autour de 64000 ? Eh non ! La fourchette pour (getint) est toujours entre -32 768 et 32 767. Pour récupérer la valeur en décimal dans une chaine, (rtos (atof (rtos ... 2)) 2) n'est-ce pas un peu redondant ? ;) Comme le dit Tramber, (rtos ... 2) semble être suffisant. [Edité le 4/12/2005 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
(gile) Posté(e) le 4 décembre 2005 Posté(e) le 4 décembre 2005 En fait, AutoLISP semble ne prendre en considération que les entiers compris entre -2 147 483 648 et 2 147 483 647. Un entier spécifié hors de cette fourchette est changé en réel, mais pour une opération dont les termes sont deux entiers "valides" et le résultat hors fouchette, ce dernier sera invalide (faux quoi). :cool: Plus d'explications (en anglais) dans l'aide aux développeurs AutoLISP Developer's Guide -> Using the AutoLISP Language -> AutoLISP Basics -> AutoLISP Data Types -> Integers Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Tramber Posté(e) le 4 décembre 2005 Posté(e) le 4 décembre 2005 C'est bien getint qui m'avait laissé une trace en mémoire avec les 32000 ( à peu près). L'explication est très claire, merci du lien et merci à Didier pour le rappel à l'ordre. C'est comme l'erreur de débutant : (/ 4 5) ! Fallait le savoir. Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
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