Home
Über mich
Blog
Veröffentlichungen
IT-Trainings
Impressum


Rundungsfunktionen in XSL bzw. XPath

Zusammenfassung:

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

Rundungsfunktionen in XSL bzw. XPath

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 wir uns 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, daß 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, daß "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"/>

qrpic/Zahlen_Rundungsfunktionen.jpg

wg / 4. Oktober 2017




Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf (info10@wilfried-grupe.de).



Vielen Dank für Ihr Interesse an meiner Arbeit.


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

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