Zahlen runden und zerlegen

Beispiele

A=12345,346789
FOR I=4 TO -3 STEP -1
T=ROUND (A;I)
DISP USING "K' : 'SD'’ : ’KL" : A ; I ; T
NEXT
:12345 ,346789 : 4 : 12345,346800
:12345 ,346789 : 3 : 12345 ,347000
:12345 ,346789 : 2 : 12345 ,350000
:12345 ,346789 : 1 : 12345 ,300000
:12345 ,346789 : 0 : 12345 ,000000
:12345 ,346789 : -1 : 12350 ,000000
:12345 ,346789 : -2 : 12300 ,000000
:12345 ,346789 : -3 : 12000 ,000000

Referenz

FFRACT( Zahl )
FINT( Zahl )

Die Funktionen liefern den Nachkommateil bzw. den ganzzahligen Teil der übergebenen Parameter.

Die Funktionen führen keine Rundung durch, vielmehr zerschneiden sie die Zahl in ein Vorund ein Nachkommaanteil und liefern das entsprechende Ergebnis.

TRUNC( Zahl )
Die Funktion liefert die Zahl gerundet zur nächsten Ganzzahl, die nicht größer ist als der Absolutwert der Zahl. FLOOR(0,5) und FLOOR(-0,5) liefern beide 0,0.

FLOOR( Zahl )
Die Funktion liefert den größten integralen Wert, der nicht größer ist, als die übergebene Zahl. FLOOR(0,5) liefert 0,0 und FLOOR(-0,5) liefert -1,0.

CEIL( Zahl)
Die Funktion liefert die kleineste Ganzzahl, die nicht kleiner ist als der übergebene Parameter. CEIL(0,5) liefert 1,0 und CEIL(-0,5) liefert 0,0.

ROUND( Zahl ; Genauigkeit )
Die Funktion liefert die übergebene Zahl gerundet auf die mit dem Parameter Genauigkeit angegebene Zahl von Stellen. Wenn der Parameter Genauigkeit 0 ist, so wird an der Kommastelle gerundet. Ist die Genauigkeit größer 0, so wird auf die Anzahl der angegebenen Nachkommastellen gerundet. Ist die Genauigkeit kleiner 0, so werden entsprechend viele Stellen vor dem Komma gerundet.

CHOP( Zahl )
Die Funktion reduziert sehr kleine Zahlen auf 0. Sehr kleine Zahlen sind alle Zahlen, die kleiner als 10-10 sind. In der Regel ist es durchaus sinnvoll, solche Zahlen als 0 zu betrachten, da sie mit Ausnahme naturwissenschaftlicher Betrachtungen in der Realität kaum vorkommen und üblicherweise nur durch Rundungsfehler entstehen.
Als Beispiel liefert CHOP(0,000000000005) das Ergebnis 0.

NEXTAFTER( Zahl ; Richtung )
Die Funktion liefert die nächste darstellbare Zahl in der angegebenen Richtung. Das bei PCs verwendete Zahlenformat IEEE 754 ist nicht in der Lage, beliebige Zahlen darzustellen. Zahlen werden daher gerundet oder abgeschnitten. Mit der Funktion wird die zur übergebenen Zahl passende nächstkleinere oder größere Zahl als Ergebnis geliefert.
Als Beispiel liefert NEXTAFTER(0;-1) das Ergebnis -4,9406564584124654e-324.
NEXTAFTER(NEXTAFTER(0;-1);-1) liefert 9,8813129168249309e-324.

MIN( Zahl1, Zahl2 )
MAX( Zahl1, Zahl2 )

Die Funktionen liefern den kleineren bzw. den größeren der beiden übergebenen Parameter.

MANTISSA( Zahl )
Die Funktion liefert die Mantisse der übergebene Zahl. Bei der Mantisse handelt es sich um die durch den Exponenten bereinigte Zahl. Die Mantisse einer Gleitkommazahl enthält eine Ziffer vor dem Komma und alle weiteren Ziffern hinter dem Komma. Die Mantisse einer Ganzzahl besteht aus der Zahl selbst. Wenn sichergestellt werden soll, dass eine Zahl in der Gleitkommaformatierung geliefert werden soll, so kann die Zahl zuvor mit dem Faktor 1,0 multipliziert werden. Generell ist das Ergebnis einer mathematischen Operation zwischen einer Gleitkomma- und einer Ganzzahl immer eine Gleitkommazahl.

MANTISSA LEN( Zahl )
Die Funktion liefert die Länge der Mantisse der übergebene Zahl. Bedingt durch die mit der IEEE-754-Norm einhergehende Rundungsproblematik kann die Mantisse einer Gleitkommazahl sehr viel länger sein, als es den Anschein hat. Die Funktion liefert demgemäß die tatschliche Mantissenlänge und nicht die Offensichtliche.

MANTISSA DIGIT( Zahl ; Position )
Die Funktion liefert von der übergebenen Zahl die Ziffer an der angegebenen Position. Wenn die Positionsangabe positiv ist, erfolgt die Ziffernzählung vom Anfang der Mantisse an. Is die Position negativ, wird die Ziffer vom Ende der Mantisse an geliefert.

LIST REAL DIGITS$( Zahl [; ShowBinVals] )
Ohne den optionalen Parameter ShowBinVals oder wenn ShowBinVals gleich 0 ist, liefert die Funktion eine Liste, die eine Liste der Ziffern der Mantisse sowie eine Zahl, die den Exponenten darstellt, enthält. Die Zahl wird vor der Darstellung normalisiert, d.h. gerundet.
Wenn Der Parameter ShowBinVals mit einem Wert ungleich 0 angegeben wird, dass liefert die Funktion eine Liste, die die binäre Darstellung der Zahl enthält. In diesem Falle enthält die Liste zwischen 2 bis 16 Bytes, abhängig von der Anzahl der Bytes, die zur Speicherung der Zahl notwendig sind.

LIST REALNC DIGITS$( Zahl )
Die Funktion liefert eine Liste, die eine Liste der Ziffern der Mantisse sowie eine Zahl, die den Exponenten darstellt, enthält. Vor der Darstellung wird die Zahl nicht normalisiert, d.h. das Ergebnis spiegelt die Zahl so wieder, wie sie im Speicher steht.

DIGITS DISTRIBUITION( Zahl )
Die Funktion berechnet das Verhältnis sämtlicher unterschiedlicher in einer Zahl vorkommender Ziffern zur Gesamtlänge der Mantisse. Wenn die Mantisse ausschießlich unterschiedliche Ziffern enthält, so ist das Ergebnis entsprechend 1.

 

Siehe auch



Schatten