Lade...
 

CX_NUMERIC - Reelle Zahl

CX_NUMERIC

Klassenhierarchie
Beschreibung:

Mit dieser Klasse werden reelle Zahlen mit maximal 16 Vorkomma- und 8 Nachkommastellen abgebildet. 

Instantiierung

Um mit InstantView® ein Objekt dieser Klasse zu erzeugen, existieren die folgenden Möglichkeiten:

  • Erzeugen mit dem Befehl CreateTransObject(CX_NUMERIC) bzw. CreatePersObject(CX_NUMERIC)   
  • Direktes Ablegen einer reellen Zahl auf dem Stack ähnlich zu ganzen Zahlen. Dabei muss der Vorkomma-Anteil mit einem "." abgeschlossen werden, damit eine reelle, und nicht eine ganze, Zahl erzeugt wird. Die Genauigkeit, d.h. die Anzahl der Nachkommastellen, wird dabei ebenfalls festgelegt. So unterscheiden sich die Angaben "2.1" und "2.100" nur darin, dass die erste Zahl eine Genauigkeit von "1" und die zweite eine von "3" besitzt. Die Angabe "2." erzeugt die reelle Zahl "2" mit einer Genauigkeit von "0". Übersteigt die Anzahl an Nachkommastellen den zulässigen Wert von "8", so werden nur die ersten 8 beachtet und mit dieser Genauigkeit gearbeitet. Negative Zahlen müssen in runden Klammern geschrieben werden, also z.B. (-2.100). 

Achtung: Die Genauigkeit (precision) wird für ein CX_NUMERIC beim Anlegen implizit festgelegt und anschließend für dieses Objekt behalten. Falls das CX_NUMERIC als Literal erstellt wird (0.000), dann bestimmt die Anzahl der angegebenen Nachkommastellen die Genauigkeit. Falls ein CX_NUMERIC per CreateTransObject/CreatePersObject angelegt wird, dann wird die Genauigkeit auf 2 Nachkommastellen gesetzt.

Falls ein neuer Wert per Put zugewiesen wird dann steuert der Typ des Operanden, welche Genauigkeit übernommen wird:
 - Bei CX_NUMERIC wird die Genauigkeit des Operanden übernommen.
 - Bei STRING wird die Genauigkeit des Zielobjekts beibehalten. Heißt auch: Nachkommastellen werden potenziell ignoriert.

Code-Beispiel:

Var(num1, num2)
CreateTransObject(CX_NUMERIC) -> num1    // CX_NUMERIC erzeugen
25.5 -> num1                             // und Wert zuweisen
.................
55.4 -> num2
................
num1 num2 +=     // Ergebnis :    num1 = 80,9

Darstellung am Bildschirm   

InstantView® Anweisung: Numeric 

Im Zusammenhang mit diesem Oberflächenobjekt und bestimmten InstantView®-Anweisungen spielen die zum Objekt gehörigen Flags eine wichtige Rolle, da mit Ihnen die Darstellung des Objektes modifiziert werden kann. 

Operatoren
Operator Kurzbeschreibung
+, -, *, /     Arithmetik
+=, -=, *=, /=   Arithmetik mit Zuweisungssemantik
>, <, =   Vergleiche
Methodenverzeichnis (MDI)
Funktion MA* Parameter Rückgabe Kurzbeschreibung
abs     OBJECT Wert ohne Vorzeichen 
AdjustPrecision       Anpassen der Genauigkeit, kein Object zurück
Amount     OBJECT Rückgabe des Objektswertes
arc     OBJECT Bogenmaß
arccos     OBJECT Arcus-Kosinus
arcsin     OBJECT Arcus-Sinus
arctan     OBJECT Arcus-Tangens
ceil     OBJECT Kleinste ganze Zahl größer als Objekt
ChangeSign       Vorzeichen umdrehen
cos     OBJECT Kosinus
cosh     OBJECT Kosinus-Hyperbolikus
cot     OBJECT Kotangens 
DiscreteRange   (OBJECT, OBJECT, OBJECT) INTEGER Zahlbereich testen 
exp     OBJECT Exponent 
floor     OBJECT Größte ganze Zahl kleiner als Objekt
GetFraction     OBJECT Zahl in Bruchzahl-Form
GetNumeric     OBJECT Rückgabe: Objekt als reelle Zahl
GetValue     OBJECT Rückgabe: Objekt als einheitsloses Wert 
GrossAmount   (OBJECT) OBJECT Prozentwert addieren
InWords   (INTEGER, INTEGER) MLSTRING Zahl in Zahlwörter umsetzen
IsInteger     INTEGER ganze Zahl testen
IsNegative     INTEGER Negatives Vorzeichen testen
IsZero     INTEGER Zahl auf Null testen
itoa     STRING Rückgabe: Zahl ohne Nachkommastellen als Zeichenfolge
ln     OBJECT natürl. Logarithmus
log     OBJECT Logarithm. Basis 10 (log10 x)
max   (OBJECT) OBJECT  Vergleich "Größer"   if (a > b) a else b
min   (OBJECT) OBJECT  Vergleich "Kleiner"  if (a < b) a else b
NetAmount   (OBJECT) OBJECT Division mit Prozentwert
PercentDifference   (OBJECT) OBJECT Differenz von zwei Zahlen als Prozentwert 
pow   (OBJECT) OBJECT Berechnet Zahl hoch Parameter-Zahl     xy
Precision *     Verändern der Genauigkeit
Reciprocal     OBJECT Kehrwertbildung
Round   (INTEGER)   Runden der Zahl
round   (OBJECT) OBJECT wie Round , nur mit Rückgabe des Objektes 
RoundAutomatically     OBJECT Runden der Zahl mit aktueller Precision als Anzahl an Nachkommastellen
Rounded   (INTEGER)    
SetNumeric   STRING, INTEGER   Zeichenkette als Zahl importieren
SetPrecision   (INTEGER)   Anzahl an Nachkommastellen setzen
SetZero       Zahl auf Null setzen
sin     OBJECT Sinus
sinh     OBJECT Sinus-Hyperbolikus 
sqrt     OBJECT Quadrat-Wurzel  
tan     OBJECT Tangens
tanh     OBJECT Tangens-Hyperbolikus 
Truncate   (INTEGER)   Abschneiden von Nachkommastellen
truncate   (OBJECT) OBJECT wie Truncate , nur mit mit Rückgabe des Objektes 
Add   CX_AMOUNT CX_AMOUNT Operator + als Funktion
AddAssign   CX_AMOUNT   Operator += als Funktion
AmountWeak     CX_AMOUNT Rückgabe des Objektwertes, bei Nichtberechenbarkeit wird INVALID zurückgegeben
Autoformat   INTEGER, INTEGER CX_AMOUNT Liefert ein, entsprechend der gegebenen Anzahl von Vor- und Nachkommastellen, formatiertes Objekt zurück (nur bei CX_VALUE, sonst das Objekt selbst).
DivAssign   CX_AMOUNT   Operator /= als Funktion
Divide   CX_AMOUNT CX_AMOUNT Operator / als Funktion
MulAssign   CX_AMOUNT   Operator *= als Funktion
Multiply   CX_AMOUNT CX_AMOUNT Operator * als Funktion
PrecisionAdjusted     OBJECT wie AdjustPrecision, nur mit Rückgabe des Objektes
string   INTEGER CX_STRING Liefert die String-Darstellung des Objektes
SubAssign   CX_AMOUNT   Operator -= als Funktion
Subtract   CX_AMOUNT CX_AMOUNT Operator - als Funktion

* MA = Member-Access-Funktion

Datenverzeichnis (DDI)
Datenfeld Typ Referenz-Klasse I* Kurzbeschreibung
this CX_NUMERIC     Die Zahl

* I = Indizierbares Datenfeld

Verwendung in AppsWH
Modul Kurzbeschreibung
calcula.mod Einheiten-Taschenrechner Modul