Aller au contenu

de cientific pour decimal


Diogo

Messages recommandés

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

Lien vers le commentaire
Partager sur d’autres sites

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

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

Bonsoir

 

je ne sais pas quelle est la limite des nombres décimaux.

 

en revanche, travailler sur des très grands nombres

donne 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

 

 

Lien vers le commentaire
Partager sur d’autres sites

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

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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

 

./__\.
(.°=°.)
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é