XPath 3.0, XPath 2.0, XPath 1.0 / XPath-Funktionen / Zahlenfunktionen / Zahlen-Rundungsfunktionen

Zahlen-Rundungsfunktionen

Zahlen-Rundungsfunktionen

➪ In XSL bzw. XPath stehen auch mehrere Funktionen zum Auf- oder Abrunden von Zahlen zur Verfügung.

floor rundet ab zum größten Integerwert, der nicht größer ist als der Originalwert.
ceiling rundet auf zum kleinsten Integerwert, der größer ist als der Originalwert.
round rundet zum Integer, der dem Originalwert am nächsten liegt.
round-half-to-even Wie round; Sonderfall: Der Originalwert ist x.5, dann rundet round-half-to-even zu jenem Integerwert in nächster Umgebung, der eine gerade Zahl darstellt.

Zur Verdeutlichung basteln Sie sich eine Zahlensequence und werten sie auch gleich aus:


<xsl:for-each 
 select="for $y in ((1 to 10)[. mod 2=1]) return ($y div 2)">
    <wert 
    original="{.}" 
    floor="{floor(.)}" 
    ceiling="{ceiling(.)}" 
    round="{round(.)}" 
    round-half-to-even="{round-half-to-even(.)}"/>    
</xsl:for-each>

Hinter dieser Zahlensequenz stehen die halbierten Werte sämtlicher Zahlen von 1 bis 9:


   <wert>0.5</wert>
   <wert>1.5</wert>
   <wert>2.5</wert>
   <wert>3.5</wert>
   <wert>4.5</wert>

Im folgenden Schritt wird jeder Einzelwert durch die Rundungsfunktionen floor, ceiling, round und round-half-to-even untersucht.

Die round-half-to-even-Funktion ist nur wenigen Berufsgruppen vertraut, etwa im Bereich Geodäsie/Vermessungswesen. Hintergrund des auf den ersten Blick vielleicht etwas rätselhaften Verhaltens ist, dass durch jede Zahlenrundung ein Fehler entsteht.

Rundet man immer nur auf, dann wird der Fehler in der Summe immer größer. Dasselbe passiert, wenn man immer abrundet. Dadurch, dass "round-half-to-even" sowohl auf- als auch abrundet, ist der Fehler in der Summe kleiner.


   <wert original="0.5"
         floor="0"
         ceiling="1"
         round="1"
         round-half-to-even="0"/>
   <wert original="1.5"
         floor="1"
         ceiling="2"
         round="2"
         round-half-to-even="2"/>
   <wert original="2.5"
         floor="2"
         ceiling="3"
         round="3"
         round-half-to-even="2"/>
   <wert original="3.5"
         floor="3"
         ceiling="4"
         round="4"
         round-half-to-even="4"/>
   <wert original="4.5"
         floor="4"
         ceiling="5"
         round="5"
         round-half-to-even="4"/>

wg / 26. März 2018



Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf.






Vielen Dank für Ihr Interesse an meiner Arbeit.


V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de

www.wilfried-grupe.de/Zahlen_Rundungsfunktionen.html