Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Nachkommastellen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Nachkommastellen (1463 mal gelesen)
Theodor Schoenwald
Ehrenmitglied



Sehen Sie sich das Profil von Theodor Schoenwald an!   Senden Sie eine Private Message an Theodor Schoenwald  Schreiben Sie einen Gästebucheintrag für Theodor Schoenwald

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 25. Nov. 2004 23:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

wie kann ich z.B. diese Zahl:

8.882E-16

in diese:

8.882

umwandeln?
Ich benötige nur 3 Stellen hinter dem Komma.
Oder kann ich eine Variable einstellen, damit sie nur so
8.882
ausgegeben wird.

Im voraus Danke für die Antworten.

Gruß
Theodor Schönwald


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mapcar
Mitglied
CADmin



Sehen Sie sich das Profil von mapcar an!   Senden Sie eine Private Message an mapcar  Schreiben Sie einen Gästebucheintrag für mapcar

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 26. Nov. 2004 01:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Theodor Schoenwald 10 Unities + Antwort hilfreich

Ich denke, die Frage reicht nicht aus;-)

Du willst die Mantisse unabhängig vom Exponenten? Oder die Mantisse in Abhängigkeit vom Exponenten 1e-16?

Und das als Zahl oder als Text? Wenn du nur den Text brauchst, kannst du ja vor dem E abschneiden - das erscheint mir aber als ziemlich wacklige und unsichere Methode;-)

Das müsstest du genauer definieren.

Gruß, Axel

------------------
(defun - Lisp over night - AutoLisp-Programmierung für AutoCad - Da weiß man, wann man's hat
Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADmium
Moderator
Maschinenbaukonstrukteur




Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 26. Nov. 2004 08:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Theodor Schoenwald 10 Unities + Antwort hilfreich

fürs Runden schau mal hier

ansonsten ... für die Mantisse ..

(setq EXPONENT(fix(/ (log ZAHL)(LOG 10))))
(/ ZAHL (exp(* EXPONENT(log 10))))

------------------
- Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Theodor Schoenwald
Ehrenmitglied



Sehen Sie sich das Profil von Theodor Schoenwald an!   Senden Sie eine Private Message an Theodor Schoenwald  Schreiben Sie einen Gästebucheintrag für Theodor Schoenwald

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 26. Nov. 2004 11:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Axel, hallo Thomas,

Entschuldigung! Bei meiner Frage ist mir ein Fehler unterlaufen, es soll nicht einfach E-... abgehackt werden, das Problem ist anders.

In ACAD ist es so, dass ich mit der Eingabe:
(rtos 8.88178e-016 2 3) dieses Ergebnis: "0.000" bekomme.

In ICAD:
(rtos 8.88178e-016 2 3) dieses Ergebnis: "8.88178e-016"

Dann habe ich als Test in ACAD folgendes eingegeben:
(rtos 8.88178e-016 2 16) Ergebnis: 0.0000000000000009

Es scheint so, als ob ICAD mit RTOS 8.88178e-016
nicht verarbeiten kann.

Wenn es immer nur um 8.88178e-016 ginge, könnte ich den Wert einfach durch 0.000 ersetzen, aber es kam auch z.B.: "4.441E-16" vor.

Welche Möglichkeiten gibt es?

Gruß
Theodor


[Diese Nachricht wurde von Theodor Schoenwald am 26. Nov. 2004 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mapcar
Mitglied
CADmin



Sehen Sie sich das Profil von mapcar an!   Senden Sie eine Private Message an mapcar  Schreiben Sie einen Gästebucheintrag für mapcar

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 26. Nov. 2004 13:53    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Theodor Schoenwald 10 Unities + Antwort hilfreich

Wirklich klar ist es mir immer noch nicht;-) Zunächst mal: Bricscad 5.0 zeigt bei Eingabe von (rtos 8.88178e-016 2 3) auch "0.0000" an. Aber das ist eben nur die Anzeige auf dem Bildschirm - intern bleiben die Zahlen doch völlig unverändert.

Wahrscheinlich willst du die Zahlen irgendwo rausschreiben. Schreibst du sie als Datentyp Double raus, hat deine Zahl auch noch in Excel oder sonstwo den Wert 8.88178E-16, schreibst du sie als Text raus, hast du in Intellicad ein Problem, wenn plötzlich eine andere Formatierung dazwischengerät. Da würde ich schlicht und einfach ein if verwenden: (if (< zahl epsilon) 0.0 zahl). Wenn du 3 Stellen hinter dem Komma brauchst, kannst du 0.0005 für Epsilon verwenden.

Gruß, Axel Strube-Zettler


------------------
(defun - Lisp over night - AutoLisp-Programmierung für AutoCad - Da weiß man, wann man's hat
Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Theodor Schoenwald
Ehrenmitglied



Sehen Sie sich das Profil von Theodor Schoenwald an!   Senden Sie eine Private Message an Theodor Schoenwald  Schreiben Sie einen Gästebucheintrag für Theodor Schoenwald

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 26. Nov. 2004 18:27    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Axel,

zu Deinen Fragen

Die Daten benötige für CNC-Daten.
Hier ist ein Ausschnitt von eine CNC-Datei,
es ist eine Text-Datei.
Bei N44 ist die fehlerhafte Ausgabe.
...
N43 G1 X1.791 Y41.972
N44 G2 X0.937 Y47.192 I4.441E-16 J2.680
N45 G1 X22.528 Y54.448
N46 G3 X24.558 Y57.590 I-0.957 J2.845
...

aussehen sollte es so, damit die CNC-Steuerung
etwas damit anfangen kann:
...
N43 G1 X1.791 Y41.972
N44 G2 X0.937 Y47.192 I0.000 J2.680
N45 G1 X22.528 Y54.448
N46 G3 X24.558 Y57.590 I-0.957 J2.845
...

Das ICAD ist noch die alte Freewareversion.

Nun das Erfreuliche, Dein Vorschlag hat, wie immer, geholfen, damit kann meine ICAD-Version etwas anfangen.

(if (and (< VAR 0.0005)(> VAR 0.0))
(setq VAR 0.0)
)

(> VAR 0.0) brauche ich, da auch negative Zahlen vorkommen.

So wäre es auch gegangen:
(if (= (exp Var) 1.0)
(setq VAR 0.0)
)

Danke!

Viele Grüße

Theodor

[Diese Nachricht wurde von Theodor Schoenwald am 26. Nov. 2004 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mapcar
Mitglied
CADmin



Sehen Sie sich das Profil von mapcar an!   Senden Sie eine Private Message an mapcar  Schreiben Sie einen Gästebucheintrag für mapcar

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 27. Nov. 2004 02:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Theodor Schoenwald 10 Unities + Antwort hilfreich

Freut mich, Theodor,

aber nur um der Ästhetik willen: Möchte man testen, ob x im Bereich zwischen a und b liegt, genügt das hier:

(< a x b) bzw. (< 0.0 x 0.0005)

Es lebe die Eleganz!

Gruß, Axel Strube-Zettler

------------------
(defun - Lisp over night - AutoLisp-Programmierung für AutoCad - Da weiß man, wann man's hat
Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Theodor Schoenwald
Ehrenmitglied



Sehen Sie sich das Profil von Theodor Schoenwald an!   Senden Sie eine Private Message an Theodor Schoenwald  Schreiben Sie einen Gästebucheintrag für Theodor Schoenwald

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 27. Nov. 2004 13:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke Axel

Mein früherer Berufsschullehrer hat immer gesagt: "Den guten Konstrukteur erkennt man an einer einfachen Kontruktion, komplizierte Konstruktionen kann jeder "..." machen". 
Die Eleganz kommt noch dazu.

Ein schönes Wochenende

Theodor

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz