fn:floor

(Auszug aus "XSLT 2.0 & XPath 2.0" von Frank Bongers, Kapitel 5.)

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

   

Kategorie: Rundungsfunktionen für numerische Typen

Herkunft: XPath 1.0

Rückgabewert: Die nächste benachbarte kleinere Ganzzahl der als Argument übergebenen Zahl – nach erfolgter Abrundung. In XPath 1.0 ist der Rückgabe­wert vom Typ number, in XPath 2.0 vom Typ xs:double.

Aufruf/Argumente:

fn:floor($eingabezahl)

$eingabezahl:
Die zu rundende Zahl. In XPath 2.0 muss diese einem der nume­rischen Datentypen oder einem hiervon abgeleiteten Typ entsprechen. In XPath 1.0 wird für floor() hingegen eine implizite Typumwandlung gemäß der Funk­tion number() vorgenommen.

Verwendungszweck:

Die Funktion fn:floor() rundet eine ihr überge­bene Dezimalzahl zur nächstkleineren Ganzzahl ab. Der Datentyp der Zahl bleibt dabei erhalten. Falls es sich bei der Eingabezahl bereits um eine Ganz­zahl handelt, bleibt der Wert unverändert. Handelt es sich beim Eingabewert nicht um einen der vier numerischen Typen xs:float, xs:double, xs:deci­mal oder xs:integer bzw. einen von diesen abgeleiteten Typ, so wird ein Typfehler gemeldet.

Hat der Eingabewert den Typ xs:untypedAtomic, so wird dieser mittels Typ-Promotion zu xs:double umgewidmet.

Ist der Eingangstyp ein von einem der numerischen Basistypen abgeleiteter Typ (derived type) so wird das Rundungsergebnis mit dem entsprechenden Basi­styp typisiert zurückgegeben.

Wird der Funktion die leere Sequenz übergeben, so gibt sie ebenfalls die leere Sequenz zurück. Ist (beim Eingangstyp xs:double oder xs:float) der Ein­gangswert NaN, so wird gleichfalls NaN zurückgegeben.

Sonderfälle:

Eingangswerte vom Typ xs:double oder xs:float, die +0 (positiv Null) oder -0 (negativ Null) sind, werden unverändert zurückgegeben.

Beispiele:

Funktionsaufruf Ergebnis

fn:floor(1.1)

 1

fn:floor(-1.1)

-2

fn:floor(2.0)

 2

fn:floor('2.2')

 Typfehler

fn:floor('ein_string')

 Typfehler

fn:floor(16 div 3)

 5

fn:floor(1 div 0)

 INF

fn:floor(-1 div 0)

-INF

Tabelle: Beispiele zum Aufruf von fn:floor().

In XPath 1.0 gibt der Aufruf von floor() mit einem erfolgreich nach numerisch umwandelbaren Stringargument eine Zahl zurück, andernfalls NaN: So gibt floor('2.2') die Zahl 2 zurück, wohingegen die Übergabe einer nicht umwandelbaren Zeichenkette wie bei floor('ein_string') den Wert NaN zur Folge hat.

Funktionsdefinition:

XPath 1.0:

floor(number)=> number

XPath 2.0:

fn:floor($arg as numeric?) as numeric?

   

<< zurück vor >>
Tipp der data2type-Redaktion:
Zum Thema XSLT bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © Galileo Press, Bonn 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XSLT 2.0 & XPath 2.0 ― Das umfassende Handbuch" denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Galileo Press, Rheinwerkallee 4, 53227 Bonn