| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY wird von NVIDIA zum Händler des Jahres gewählt – zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: Nachkommastellen (1582 mal gelesen)
|
Theodor Schoenwald Ehrenmitglied
Beiträge: 1672 Registriert: 16.04.2002
|
erstellt am: 25. Nov. 2004 23:58 <-- editieren / zitieren --> Unities abgeben:
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
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 / zitieren --> Unities abgeben: Nur für Theodor Schoenwald
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 26. Nov. 2004 08:11 <-- editieren / zitieren --> Unities abgeben: Nur für Theodor Schoenwald
fürs Runden schau mal hieransonsten ... 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
Beiträge: 1672 Registriert: 16.04.2002
|
erstellt am: 26. Nov. 2004 11:20 <-- editieren / zitieren --> Unities abgeben:
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
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 / zitieren --> Unities abgeben: Nur für Theodor Schoenwald
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
Beiträge: 1672 Registriert: 16.04.2002
|
erstellt am: 26. Nov. 2004 18:27 <-- editieren / zitieren --> Unities abgeben:
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
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 / zitieren --> Unities abgeben: Nur für Theodor Schoenwald
|
Theodor Schoenwald Ehrenmitglied
Beiträge: 1672 Registriert: 16.04.2002
|
erstellt am: 27. Nov. 2004 13:23 <-- editieren / zitieren --> Unities abgeben:
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 |