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.
Operator | Kurzbeschreibung |
---|---|
+, -, *, / | Arithmetik |
+=, -=, *=, /= | Arithmetik mit Zuweisungssemantik |
>, <, = | Vergleiche |
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
Datenfeld | Typ | Referenz-Klasse | I* | Kurzbeschreibung |
---|---|---|---|---|
this | CX_NUMERIC | Die Zahl |
* I = Indizierbares Datenfeld
Modul | Kurzbeschreibung |
---|---|
calcula.mod | Einheiten-Taschenrechner Modul |