| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Nullwert hinterm Komma bei Preisen werden nicht angezeigt (1222 mal gelesen)
|
cadsys Mitglied Selbstständig, CAD Konstruktionsbüro für Möbel und Innenausbau
Beiträge: 67 Registriert: 25.02.2001 AutoCAD 2006 - 2010; Win2000 /XP prof.; Corel 2 Quadro; 2,4
|
erstellt am: 06. Dez. 2011 08:38 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen. Habe folgendes Problem: In einer Textdatei stehen Preise. Diese lese ich als String aus, wandle sie mit "atof" in eine Zahl, multiplizere sie. Wenn die Ziffern hinter dem Punkt jedoch eine "0" ist, wird diese nicht mehr angezeigt. Wie kann ich das ändern? zB. (setq preis (atof "35.20") ergibt 35.2 (es fehlt die 0 am Ende. Kann ich ebenfalls den Punkt der Trennung gegen ein Komma tauschen? Vielen Dank für Eure Hilfe Peter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 06. Dez. 2011 08:44 <-- editieren / zitieren --> Unities abgeben: Nur für cadsys
|
tunnelbauer Ehrenmitglied V.I.P. h.c. Bauingenieur
Beiträge: 7085 Registriert: 13.01.2004 ich hab eh keine Probleme damit...
|
erstellt am: 06. Dez. 2011 08:44 <-- editieren / zitieren --> Unities abgeben: Nur für cadsys
|
neurosis Mitglied dipl.ing.
Beiträge: 222 Registriert: 22.08.2006
|
erstellt am: 06. Dez. 2011 08:44 <-- editieren / zitieren --> Unities abgeben: Nur für cadsys
|
spider_dd Mitglied
Beiträge: 1111 Registriert: 27.11.2003 Win 10Pro Intel(R) Core(TM) i7-7700 NVIDIA Quadro P1000 ACAD, Civil-3D 2018
|
erstellt am: 06. Dez. 2011 08:46 <-- editieren / zitieren --> Unities abgeben: Nur für cadsys
Hallo Peter, mit (atof .. wandelst Du eine Zeichenkette in eine Real-Zahl, der ist es egal ob da noch weiter "Nachkomma-Nullen" dran sind. Und ACAD arbeitet nun mal mit Dezimalpunkt, daher: Nein, für die Zahl kannst Du das nicht ändern. Wenn Du Zahlen aber als Texte darstellst, dann sieht das Ganze schon wieder anders aus, siehe hierzu z. B. (rtos ...) Und wenn Du dann einen Text hast, dann kansst Du bei dem natürlich auch den Punkt gegen ein Komma tauschen (vl-string-subst ...) HTH Gruß Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadsys Mitglied Selbstständig, CAD Konstruktionsbüro für Möbel und Innenausbau
Beiträge: 67 Registriert: 25.02.2001 AutoCAD 2006 - 2010; Win2000 /XP prof.; Corel 2 Quadro; 2,4
|
erstellt am: 06. Dez. 2011 09:50 <-- editieren / zitieren --> Unities abgeben:
Hallo an alle. Vielen Dank für die schnellen Antworten. Werde jetzt ncoh mit der SysVar und (vl-string-translate ...) herumtesten und melden wenn das Ergebnis so ist, wie es sein soll. @ CADmium: das mit der SysVar war mir nicht bekannt und ist das, was ich gesucht habe. nur wird jetzt auch die 0 vor dem Punkt entfernt. Werde nochmals mit den Werten rumspielen. Ebenso "vl-string-translate" ist gut, werde ich einfach nachdem auslesen das Komma gegen den Punkt tausche - rechnen - und wieder zurücktauschen. Danke @ Thomas (Tunnelbauer): (setq preis (rtos (atof "35.20") 2 2)) genau das ergibt 35.2 aber in Kombination mit SysVar DimZin "4" passt es wieder @ Marco: der Wert soll als Gesamtsumme (string) in einem DCL-Fenster angezeigt werden. @ Thomas (spider_dd): Grunssätzlich hat es an der SysVar "DimZin" gelegen, der Tausch des Punkt mit (vl-string-subst ...) ist das i-Tüpfelchen. Danke und Gruß Peter Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadsys Mitglied Selbstständig, CAD Konstruktionsbüro für Möbel und Innenausbau
Beiträge: 67 Registriert: 25.02.2001 AutoCAD 2006 - 2010; Win2000 /XP prof.; Corel 2 Quadro; 2,4
|
erstellt am: 06. Dez. 2011 15:36 <-- editieren / zitieren --> Unities abgeben:
Danke an alle. so sieht jetzt der fertige Teil aus: (if (= preis-anzeigen "preis-anzeigen") (progn (setvar "dimzin" 4) (setq einzelpreis (substr lese-zeile 115 8)) (setq gesamtpreis (rtos (* (atof menge) (atof einzelpreis)) 2 2)) (if (= (substr gesamtpreis 1 1) ".") (setq gesamtpreis (strcat "0" gesamtpreis)) ) (setq gesamtsumme (rtos (+ (atof gesamtsumme) (atof gesamtpreis)) 2 2)) (setq beschreibung (strcat menge "x " (substr zeile 1 8) " " (substr lese-zeile 17 65) " " gesamtpreis " EUR")) (setvar "dimzin" nullstellen) ) (setq beschreibung (strcat menge "x " (substr zeile 1 8) " " (substr lese-zeile 17 65))) ) ........... Bis bald Peter ------------------ Peter Böhne CAD Systemtechnik, Böhne Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |