Im einzelnen dreht es sich um die folgenden Funktionen: INT(), ABS(), CEILING(), FLOOR() und MOD().
Der folgende Mustercode soll die Arbeitsweise der hier vorgestellten Funktionen veranschaulichen. Als Basis dient eine negative Kommazahl. Dies ermöglicht das Aufzeigen evtl auftretender Fallstricke. Natürlich nur für den Fall, das wir vergessen haben sollten, wie mit negativen Zahlenwerten umgegangen wird.... ;-)
An dieser Stelle noch ein Verweis auf einen älteren Blogeintrag zum Thema Modulo-Berechnungen, der dies hier ganz gut ergänzt:
http://tomsvfpblog.blogspot.com/2007/12/wieso-verhlt-sich-die-modulo-funktion.html
CLEAR
lnNumeric = -123.456
?[Original :]
??lnNumeric
* Entfernen der Nachkommastellen / remove decimal places
?[INT( lnNumeric ) :]
??INT( lnNumeric )
* Vorzeichenlose Ganzzahl / unsigned integer
?[ABS( lnNumeric ) :]
??ABS( lnNumeric )
* Nächst höhere Vorzeichen-Ganzzahl / next higher signed integer
?[CEILING( lnNumeric ) :]
??CEILING( lnNumeric )
* Nächst niedrigere Vorzeichen-Ganzzahl / next lower signed integer
?[FLOOR( lnNumeric ) :]
??FLOOR( lnNumeric )
* extrahieren der Nachkommastellen / extracting decimal places
?[MOD( lnNumeric , 1 ) :]
??MOD( lnNumeric , 1 )
* Nächst höhere Ganzzahl / next higher integer
?[CEILING( ABS( lnNumeric ) ):]
??CEILING( ABS( lnNumeric ) )
* Nächst niedrigere Ganzzahl / next lower integer
?[FLOOR( ABS( lnNumeric ) ) :]
??FLOOR( ABS( lnNumeric ) )
* extrahieren der Nachkommastellen / extracting decimal places
?[MOD( ABS( lnNumeric ) , 1 ):]
??MOD( ABS( lnNumeric ) , 1 )
Keine Kommentare:
Kommentar veröffentlichen