| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO |
| |
 | TFH Technical Services B.V. wird Teil der MAIT Gruppe, eine Pressemitteilung
|
Autor
|
Thema: Zahl in String wandeln mit Nachkommastellen? (1379 mal gelesen)
|
Andreas 253 Mitglied
 
 Beiträge: 157 Registriert: 01.03.2002
|
erstellt am: 10. Dez. 2003 10:59 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen, Ich habe folgendes Problem: Ein ME10-Makro soll unter anderem einen Text ausgeben, in dem ein Maß vorkommt. Dieses Maß soll grundsätzlich mit 3 Nachkommastellen erscheinen, auch wenn es ein glattes Maß ist. Jetzt gibt die STR - Funktion aber keine Nullen als Nachkommastellen zurück, und ich weiß auch nicht, ob die Maße immer glatt sind. Gibt es da eine EINFACHE Möglichkeit, diese Variable in einen String zu verwandeln, der die Nachkommastellen enthält, oder muß ich da irgendwas kompliziertes basteln? Gruß Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
baumgartner Mitglied Dipl.-Ing. Maschinenbau
  
 Beiträge: 715 Registriert: 05.01.2001 Ing.-Büro Andreas Baumgartner bietet Lösungen rund um ME10. * ME10-Makros * ME10-Makroschulungen
|
erstellt am: 10. Dez. 2003 12:01 <-- editieren / zitieren --> Unities abgeben:          Nur für Andreas 253
hallo, ich denke, dass man sich da etwas basteln muss. Runde doch den Wert grundsätzlich mal auf 3 Nachkommastellen, dann wandle zu Text. Suche nach dem Dezimalpunkt und reagiere entsprechend. let wert_txt (str ((round (wert*1000))/1000)) if (pos "." wert_txt) let wert_txt (wert_txt + "00") (* = mindestens 1 Nachkomma vorh. *) let wert_txt (substr wert_txt 1 ((pos ".". wert_txt) +4))) (* schneide nach 4 Stellen nach dem Dezimalpunkt ab *) else let wert_txt (wert_txt + ".000") (* war keine Nachkomma da *) end_if gebastelt, ungetestet, unsupportet, aber doch ganz einfach.
------------------ Grüsse aus dem Schwarzwald  www.Andreas-Baumgartner.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
H.annes Mitglied CAD-Pfriemler
 
 Beiträge: 482 Registriert: 02.07.2001 OSDD 8.7 - 13.20 ; OSDM 13.00
|
erstellt am: 10. Dez. 2003 13:11 <-- editieren / zitieren --> Unities abgeben:          Nur für Andreas 253
Mahlzeit, ein einfaches Makro - auf die gewünschten drei Stellen zugeschnitten: Code: DEFINE Runden PARAMETER Zahl LET S (STR (ROUND (Zahl * 1000))) LET Gerundetezahl (SUBSTR S (LEN S - 3) 1 + "," + SUBSTR S (LEN S - 2) 3) END_DEFINE
DISPLAY Gerundetezahl oder - die gfeanzte Variante :
Code: DEFINE Runden PARAMETER Zahl (SUBSTR (STR (ROUND (Zahl * 1000))) (LEN (STR (ROUND (Zahl * 1000))) - 3) 1 + "," + SUBSTR (STR (ROUND (Zahl * 1000))) (LEN (STR (ROUND (Zahl * 1000))) - 2) 3) END_DEFINE
zB: LET Zahlentext Runden 27.2098 Gruß, Hannes
------------------ undsedadnawosondasoisdeswossedan undwosondasdadnsa Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Klaus Lörincz Mitglied Consultant
  
 Beiträge: 533 Registriert: 06.08.2003 OSD M = aktuell OSD D = aktuell OS M = aktuell auf WIN und HP-UX
|
erstellt am: 10. Dez. 2003 13:12 <-- editieren / zitieren --> Unities abgeben:          Nur für Andreas 253
Hallo Andreas, in der Version 12 von OSDD/ME10 bekomme ich immer die Zahlen nach dem Komma (egal ob "." oder ",") mit dem Befehl STR mit. Grüßle
------------------ Klaus Lörincz 0174 3439 428 Sindelfingen Germany Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas 253 Mitglied
 
 Beiträge: 157 Registriert: 01.03.2002
|
erstellt am: 10. Dez. 2003 13:13 <-- editieren / zitieren --> Unities abgeben:         
|
Andreas 253 Mitglied
 
 Beiträge: 157 Registriert: 01.03.2002
|
erstellt am: 10. Dez. 2003 13:41 <-- editieren / zitieren --> Unities abgeben:         
Hallo alle miteinander, das war ja hübsch gleichzeitig! @Hannes: Deine Variante sieht auch recht vielversprechend aus, werd ich mal testen! @Klaus: Danke für die Info, leider arbeiten wir noch mit der V 11.0b und da ich nicht weiß, wann die neue Version bei uns zum Einsatz kommt, muß ich wohl erstmal auf eine der vorliegenden Lösungen zurückgreifen. Außerdem brauche ich ja im Zweifelsfalle auch 3 Nullen hinter dem Komma, geht das bei der neuen Version auch? Gruß Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |