coord-transf.2d elements3d elementsnon geo scriptsfunctionscontrol statem.attributesvariousaddons
arithmeticscirclemathematicsstatisticsstringarraybinaryspecial
STR STR{2} SPLIT STW STRLEN STRSTR STRSUB
Name
STR{2}
Syntax
STR{2}(format_text,expression,interval)
Aufklappen Range
expression beliebiger numerischer Ausdruck
format_text="%[flag][genauigkeit][stellen][.nachkommastellen][einheit]", Typ Text (1)
interval, Typ Text

(1) Zusammensetzung und Wertebereiche der Bestandteile siehe STR()-Funktion.

[flags] (zusätzliches Flag since ArchiCAD® 9):
  [tilde]: Nachkommaanteile mit dem Wert 0 (gerundet) werden nicht ausgegeben, auch wenn [.nachkommastellen]>0 angegeben ist. Siehe Beispiel 3.

[genauigkeit] Rundungsintervall ...

... für die nachfolgenden Ziffern nach der letzten [nachkommastelle]. Rückgabe des gerundeten Wertes als Text in interval:
(Angabe der Intervallbreite / mögliche Ergebniswerte)
  *0: Aus (interval="", Standard)
  *1: 0.5  /  0 5
  *2: 0.25  /  0 25 5 75
  *3: 0.1  /  0 1 2 ... 9
  *4: 0.01  /  0 01 02 ... 99
wobei der Rundungswert 0 nicht als Ziffer, sondern als Leerstring zurückgegeben wird.

... für den Ergebnisstring. Dann ist interval="" (since ArchiCAD® 9)
  *0: 1  /  0 (interval="") (Standard)
  *5: 0.5  /  .5
  *6: 0.25  /  .25 .5 .75
Aufklappen Description
Entspricht vollständig der STR()-Funktion (nur 2. Syntaxform) mit der Ergänzung um die Einstellung und ggf. Rückgabe der Rundungsintervalle mit interval. Es gibt 2 Wirkungsweisen:

1. Mit den Genauigkeitsflags "*1" bis "*4" wird zusätzlich zu dem Ergebnisstring, der die Zahl in der Form [stellen][.nachkommastellen] enthält in die Variable interval ein Text übergeben, der die Fortsetzung der Zahl nach der letzten gewünschten Nachkommastelle beschreibt. Je nach Genauigkeit wird dies in bis zu 100 Rundungsintervallen angegeben. Wird auf 0 abgerundet, wird ein Leertext zurückgegeben. Dies entspricht der Exponentendarstellung von Maßkettenzahlen wie für Deutschland in der DIN 1356 gefordert.
Natürlich wird, sobald diese Darstellungsart im format_text enthalten ist, die letzte Nachkommastelle nicht mehr kaufmännisch gerundet. Sie ändert sich nur, wenn im letzten Intervall aufgerundet werden muss. Dafür wird die Rundung ja in interval abgelegt.

2. Ab ArchiCAD 9 ist "*5" und "*6" als Rundungsoption hinzugekommen. Beide geben nie ein Ergebnis in interval zurück, ändern aber die Rundungsgenauigkeit des Ergebnisstrings. Ist bei der STR()-Funktion die Rundung der letzten Stelle stets nur kaufmännisch (.5≤FRA(wert)<1: aufrunden, 0<FRA(wert)<.5 abrunden), kann dies nun auf 2 bzw. 4 Intervallschritte differenziert werden. Die letzte Stelle wird dann gemäß Rundungswert angepasst. Bei Verwendung von "*6" werden die letzten beiden (Nachkomma)stellen zur Rundung herangezogen und geändert. Siehe Beispiel 3. Der Unterschied Variante 1 besteht darin dass zur Rundung nicht der Bereich nach dem Ende der Nachkommastellen, sondern davor betrachtet wird.
Aufklappen Example
Beispiel 1:
zahl = 1.2738
! ––– Rundung in verschiedenen Intervallstufen:
string = STR{2}("%5.1",zahl,iv)   !string=»  1,3«/iv=»«
string = STR{2}("%*05.1",zahl,iv) !string=»  1,3«/iv=»«
string = STR{2}("%*15.1",zahl,iv) !string=»  1,2«/iv=»5«
string = STR{2}("%*25.1",zahl,iv) !string=»  1,2«/iv=»75«
string = STR{2}("%*35.1",zahl,iv) !string=»  1,2«/iv=»7«
string = STR{2}("%*45.1",zahl,iv) !string=»  1,2«/iv=»74«
! ––– Graphische Ausgabe:
s=0.1*GLOB_SCALE/100 !Exponentenerhöhung
text2 0,0,string
text2 stw(string)/1000*GLOB_SCALE,s,iv

Erweiterte Rundung. interval (hier die Variable "iv") gibt an, wie die Zahl nach der letzten Nachkommastelle "weitergeht".


Beispiel 2:
zahl = 1.2738
! Runden ohne Nachkommastellen
string=STR{2}("%8.0",zahl,iv)   !string=»       1«/iv=»«
string=STR{2}("%*58.0",zahl,iv) !string=»       1,5«/iv=»«
string=STR{2}("%*68.0",zahl,iv) !string=»       1,25«/iv=»«
! Runden mit 1 Nachkommastelle
string=STR{2}("%8.1",zahl,iv)   !string=»     1,3«/iv=»«
string=STR{2}("%*58.1",zahl,iv) !string=»       1,5«/iv=»«
string=STR{2}("%*68.1",zahl,iv) !string=»     1,275«/iv=»«
! Runden mit 2 Nachkommastellen
string=STR{2}("%8.2",zahl,iv)   !string=»    1,27«/iv=»«
string=STR{2}("%*58.2",zahl,iv) !string=»     1,25«/iv=»«
string=STR{2}("%*68.2",zahl,iv) !string=»       1,25«/iv=»«
! Runden mit 3 Nachkommastellen
string=STR{2}("%8.3",zahl,iv)   !string=»   1,274«/iv=»«
string=STR{2}("%*58.3",zahl,iv) !string=»    1,275«/iv=»«
string=STR{2}("%*68.3",zahl,iv) !string=»     1,275«/iv=»«
! Runden mit 4 Nachkommastellen
string=STR{2}("%8.4",zahl,iv)   !string=»  1,2738«/iv=»«
string=STR{2}("%*58.4",zahl,iv) !string=»   1,2740«/iv=»«
string=STR{2}("%*68.4",zahl,iv) !string=»    1,2750«/iv=»«

Erweiterte Rundungsfunktionalität für den Ergebnisstring since ArchiCAD 9. Die Mindestanzahl der Stellen erweitert sich dabei um 1 oder 2 Zeichen, wenngleich noch genügen Platz für die angefügten Stellen wäre.

Beispiel 3:
string=STR{2}("%8.2",25.0000,iv)  !=»   25,00«
string=STR{2}("%[tilde]8.2",25.0000,iv) !=»   25«
string=STR{2}("%8.2",25.0100,iv)  !=»   25,01«
string=STR{2}("%[tilde]8.2",25.0100,iv) !=»   25,01«
string=STR{2}("%[tilde]8.2",25.0010,iv) !=»   25«

Bei Verwendung des Flags "[tilde]" (tilde) werden 0-Werte der Nachkommaanteile weggelassen. Zu beachten ist auch hier wieder, dass dann aber (bis ArchiCAD 9) die Angabe von [stellen] nicht korrekt funktioniert. Es wird nur mit soviel Leerzeichen aufgefüllt, wie nötig wären, wenn der Nachkommaanteil ausgegeben würde.
Aufklappen Specialities
Da der Formatierungsteil [genauigkeit] genau 2 Zeichen breit ist, ist es nicht nötig zum nachfolgenden Teil [stellen] ein Trennzeichen in den Formatierungsstring einzufügen. Es führt sogar mitunter zu Fehlern. Der GDL-Compiler kann also "%*34.2" in "%", [genauigkeit]="*3", [stellen]="4" und [nachkommastellen]=".2" trennen und erzeugt nicht fälschlicherweise einen 34 Zeichen breiten string.
Aufklappen ArchiCAD®
since 8.0
Aufklappen References
GDL-Handbuch 8.0 (DE) p. 120
GDL-Handbuch 8.1 (DE) p. 122
GDL-Handbuch 9.0 (DE) p. 202
GDL-Handbuch 10.0 (DE) p. 204
GDL-Handbuch 11.0 (DE) p. 210
GDL Reference Guide 9.0 (INT) p. 196
GDL Reference Guide 10.0 (INT) p. 202
GDL Reference Guide 11.0 (INT) p. 202
 




separates Web Control Fenster Download Objekt

Aufklappen GDL WebControl