| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
|
Autor
|
Thema: Reelle Zahl in String (201 mal gelesen)
|
Waldemar Mitglied Applikationsingenieur
Beiträge: 264 Registriert: 06.09.2001 Windows 7, Intel Core 2 Duo, P8600 AutoCAD, AutoCAD MEP, Revit MEP Navisworks
|
erstellt am: 18. Jul. 2003 20:35 <-- editieren / zitieren --> Unities abgeben:
Hallo ! Kann ich eine reelle Zahl (ohne sie vorher in eine Ganzzahl umzuwandeln) in einen String umwandeln? Mein Problem: Ich kenne die Einheiten, in denen der Benutzer arbeitet nicht. Die Eingabe kann also wie folgt lauten: 0.85 bzw. 85 oder 850 (m, cm bzw. m). Wenn ich die reelle Zahl in Ganzzahl und dann in ein String umwandle bekomme ich bei 0.85 bzw. 0.87 als String eine 0. Das wäre falsch. Ich muss am Ende einen dreistelligen String erhalten. Z.Bsp: 850 Schöne Grüße Waldemar
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pan Mitglied
Beiträge: 141 Registriert: 18.01.2003 HP Z200 Win 7 prof ADT 2012
|
erstellt am: 18. Jul. 2003 21:05 <-- editieren / zitieren --> Unities abgeben: Nur für Waldemar
|
Waldemar Mitglied Applikationsingenieur
Beiträge: 264 Registriert: 06.09.2001
|
erstellt am: 18. Jul. 2003 21:19 <-- editieren / zitieren --> Unities abgeben:
|
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 21. Jul. 2003 08:05 <-- editieren / zitieren --> Unities abgeben: Nur für Waldemar
Hallo Waldemar, irgendwelche Regeln müssen die Anwender einhalten. Ein Programm, welches die Gedanken des davor sitzenden lesen kann, ist mir im Moment mal noch nicht bekannt. Wenn du aber unbedingt eine 3-stellige Ganzzahl möchtest, dann multipliziere doch die Eingabe so lange mit 10, bis diese kleiner 1000 aber größer 100 ist.
Code:
(setq zahl (getreal "\nReelle Zahl eingeben: ")) (while (not (<= 100.0 zahl 1000.0)) (setq zahl (if (> zahl 1000) (/ zahl 10) (* zahl 10))) ) (itoa(fix zahl))
Bei Fragen ... Grüße Holger ------------------ Holger Brischke CADlon - Lisp over night! Irgendwann muß man schlafen, deshalb: +!+!+Urlaub vom 01.08.-30.08.2003+!+!+ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Waldemar Mitglied Applikationsingenieur
Beiträge: 264 Registriert: 06.09.2001
|
erstellt am: 21. Jul. 2003 08:15 <-- editieren / zitieren --> Unities abgeben:
Hallo Holger, hab dies wie folgt gelöst: (Setq KB2 (Substr (Rtos (* KB2 1000)) 1 3)) Weis nicht ob's perfekt ist, funktioniert aber. Der Benutzer kann jetzt 0.85, 85 bzw. 850 eingeben. Als Bezeichnung für dieses Objekt bekommt er immer 850. Das ist auch mein Ziel. Eine schöne Woche ... Waldemar
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 21. Jul. 2003 08:29 <-- editieren / zitieren --> Unities abgeben: Nur für Waldemar
Hallo Waldemar, es führen viele Wege nach Rom. Was mir an deiner Lösung nicht gefällt, ist das Scheitern, wenn jetzt jemand auf die Idee kommt 0.00085 einzugeben. Bei Fragen ... Grüße Holger
------------------ Holger Brischke CADlon - Lisp over night! Irgendwann muß man schlafen, deshalb: +!+!+Urlaub vom 01.08.-30.08.2003+!+!+ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Waldemar Mitglied Applikationsingenieur
Beiträge: 264 Registriert: 06.09.2001
|
erstellt am: 21. Jul. 2003 08:40 <-- editieren / zitieren --> Unities abgeben:
Hi Holger, die Möglichkeit habe ich beim Erstellen der Routine überlegt. Da im Bau mit den drei Einheiten (mm, cm und m) gearbeitet wird und meine Lisp Kenntnisse noch nicht so gut sind, habe ich das dann gelassen. Fakt ist dass deine Lösung das ausschließt. Ich werde die auch in mein Programm einbauen. Besten Dank!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |