
Example
Beispiel 1 (nach 1. Syntaxschema):
string = STR(12.75,5,1) ! =» 12.8«
string = STR(12.75,5,2) ! =»12.75«
string = STR(12.75,5,4) ! =»12.7500«
string = STR(12.75,10,2) ! =» 12.75«
Beispiel 2 (nach 2. Syntaxschema):
zahl=12.75
string = STR("%#+9.1cm",zahl) ! = » +1.275,0«
Der Wert von "zahl" (12.75) wird nach den Formatierungsregeln des vorangestellten Formatierungsstrings ("%#+9.1cm") umgewandelt. Dessen Zusammensetzung:
"%" ist obligatorisch und ohne Wirkung.
"#" Bei Zahlen kleiner 0 bewirkt das Weglassen des "0,"-Anteils. Hier, da 12.75>0 ist es ohne Wirkung.
"+" Ausgabe des Pluszeichens, wenn der Wert von Zahl positiv ist.
"9" Der Ergebnistext soll inkl. Vorzeichen und Punkt mind. 9 Zeichen breit sein. Fehlende Stellen werden vorne mit Leerzeichen gefüllt.
".1" Runden auf 1 Nachkommastelle.
"cm" Umwandlung des Ergebnisses in Zentimeter, also zahl*100.
Beispiel 3:
zahl = 2.54
! Ausgabe in Metern, der internen Rechnungseinheit
string = STR("%.3m",zahl) ! = »2,540«
! Ausgabe in Zentimetern
string = STR("%.1cm",zahl) ! = »254,0«
! Ausgabe in Millimetern
string = STR("%.0mm",zahl) ! = »2.540«
! Ausgabe in Bruchzoll (1 Zoll=2,54 Zentimeter)
string = STR("%.2fi",zahl) ! = »100"«
! Ausgabe in dezimalen Zoll
string = STR("%.2di",zahl) ! = »100,00"«
! Ausgabe in dezimalen Fuß (1 Fuß=30,48 Zentimeter)
string = STR("%.4df",zahl) ! = »8,3333'«
! Ausgabe in Fuß und Bruchzoll
string = STR("%.2ffi",zahl) ! = »8'-4"«
Umrechnung in verschiedene Längeneinheiten.
Beispiel 4:
! Ausgabe in Quadratmetern (Standard)
string = STR("%.2sqm",1) ! = »1,00«
! Ausgabe in Quadratzentimetern
string = STR("%.0sqcm",1) ! = »10.000«
! Ausgabe in Quadratmillimetern
string = STR("%.0sqmm",1) ! = »1.000.000«
! Ausgabe in Quadratfuß
string = STR("%.4sqf",1) ! = »10,7639«
! Ausgabe in Quadratzoll
string = STR("%.0sqi",1) ! = »1.550«
Umrechnung in Flächeneinheiten. Zeichen für Zoll und Fuß werden nicht mit ausgegeben!
Beispiel 5:
zahl = 0.5
! Ausgabe in Kubikmeter (Standard)
string = STR("%.2cum",zahl) ! = »0,50«
! Ausgabe in Kubikzentimeter
string = STR("%.0cucm",zahl) ! = »500.000«
! Ausgabe in Kubikmillimeter
string = STR("%.0cumm",zahl) ! = »500.000.000«
! Ausgabe in Litern (Kubikdezimeter)
string = STR("%.0l",zahl) ! = »500«
! Ausgabe in Kubikyard
string = STR("%.4cuy",zahl) ! = »0,6540«
! Ausgabe in Kubikfuß
string = STR("%.4cuf",zahl) ! = »17,6573«
! Ausgabe in Kubikzoll
string = STR("%.1cui",zahl) ! = »30.511,9«
! Ausgabe in Galleonen
string = STR("%.1gal",zahl) ! = »132,1«
Umrechnung in Volumeneinheiten. Auch hier keine Ausgabe von Einheiten.
Beispiel 6:
winkel = 180 ! in Altgrad
! Ausgabe in Bogensekunden und Minuten.
string = STR("%7.4dms",winkel) ! = »180° 0' 0.00" «
! Neugrad mit 90 Altgrad=100 Neugrad
string = STR("%7.1gr",winkel) ! = » 200,0G «
! Ausgabe im Bogenmaß
string = STR("%7.4rad",winkel) ! = » 3,1416R « (=π)
Umrechnung von Winkelwerten. Hier werden die Einheiten mit ausgegeben.
Beispiel 7:
zahl=12.75
string = STR(“%-8”,zahl) ! = »12,750 «
string = STR(“%8”,zahl) ! = » 12,750«
string = STR(“%8.0”,zahl) ! = » 13«
string = STR(“%-8.0”,zahl) ! = »13 «
Auffüllen mit Leerzeichen links (Standard) und rechts mit dem "-" - Flag.
Beispiel 8:
string = STR(“%.4”,0.1815) ! = »0,1815«
string = STR("%.2”,0.1815) ! = »0,18«
string = STR("%.3”,0.1815) ! = »0,182«
Kaufmännisches Runden bei Angabe der Nachkommastellen.
Beispiel 9:
string = STR("%.2",12.75) ! = »12,75«
string = STR("%+.2",12.75) ! = »+12,75«
string = STR("% .2",12.75) ! = » 12,75«
string = STR("% .2",-12.75) ! = »-12,75«
Ausgabe des Vorzeichens "-" immer, wenn negativ; "+" bzw. " " nur mit gesetzten Flags.
Beispiel 10:
string = STR("%.2",0.75) ! = »0,75«
string = STR("%#.2",0.75) ! = »75«
string = STR("%#.4",0.75) ! = »7.500«
Zahlen zwischen 0 und 1 können auf reine Nachkommadarstellung (nach DIN 1356) umgestellt werden. Die Anzahl der Nachkommastellen haben einen Einfluß auf die Darstellung.
Beispiel 11:
string = STR("%10.2",12.75) ! = » 1.275,00«
string = STR("%^10.2",12.75) ! = » 1275.00«
Ab ArchiCAD 9 kann die Zahl unabhängig von der lokalisierten ArchiCAD-Version in die amerikanische/internationale Notation ohne Tausendertrennung und Punkt statt Dezimalkomma gewandelt werden.
Beispiel 12:
string = STR("%",0) ! = »0,000«
string = STR("%[tilde]",0) ! = »0«
Tja, das Tilde-Flag since AC8. Wofür ist es wirklich? oder funktioniert es nur in STR{2}()?
Beispiel 13:
zoll = 4,8768
string = STR("%.4",zoll) ! = »4,8768«
string = STR("%ffi",zoll) ! = »16'«
string = STR("%0ffi",zoll) ! = »16'-0"«
string = STR("%fdi",zoll) ! = »16'«
string = STR("%0fdi",zoll) ! = »16'-0.00"«
string = STR("%0.3fdi",zoll) ! = »16'-0.000"«
string = STR("%fi",0) ! = »0"«
string = STR("%0fi",0) ! = »0"«
string = STR("%df",0) ! = »0,00'«
string = STR("%0df",0) ! = »0,00'«
Auch bei der Bruchzolldarstellung können 0-Darstellungen unterdrückt werden.
Beispiel 14:
zahl=5.08
string = STR("%10.1df",zahl) ! = » 16,7'«
string = STR("%10.1di",zahl) ! = » 200,0"«
string = STR("%10.1fi",zahl) ! = »200"«
string = STR("%10.1fdi",zahl) ! = »16'-8.0"«
string = STR("%10.1ffi",zahl) ! = »16'-8"«
string = STR("%-10.1di",zahl) ! = »200,0"«
Fehlerhaftes Auffüllen mit Leerzeichen auf die Minimalbreite des Ergebnistextes bei der Ausgabe im imperialen Format (Bruchzoll).
Beispiel 15:
winkel=180
string = STR("%-10.1",winkel) ! = »180,0 «
string = STR("%10.1dd",winkel) ! = » 180,0° «
string = STR("%-10.1dd",winkel) ! = »180,0 ° «
Unlogisches Auffüllen mit Leerzeichen bei Winkelmaßen. |