Fonction round() | |
Renvoie le nombre entier le plus proche de l'argument. | |
Description | |
Si deux nombres sont aussi proches l'un que l'autre de l'argument (1 et 2 sont aussi proches l'un que l'autre de 1.5), le nombre le plus proche de l'infini positif est renvoyé. Les différentes valeurs d'argument sont gérées comme suit :
|
|
Entrées | |
Un nombre. Si l'argument n'est pas un nombre, il est converti en nombre comme si la fonction number() lui avait été appliquée. |
|
Sortie | |
Le nombre entier le plus proche de l'argument. Les cas particuliers sont gérés comme décrit dans la présente section. |
|
Définie dans | |
XPath section 4.4, Fonctions Nombre. |
|
Exemple | |
La feuille de style suivante présente les résultats de l'invocation de la fonction round() en fonction de plusieurs valeurs. Le document XML suivant a servi d'entrée : <?xml version="1.0"?> <report> <title>Miles Flown in 2001</title> <month sequence="01"> <miles-flown>12379</miles-flown> <miles-earned>35215</miles-earned> </month> <month sequence="02"> <miles-flown>32857</miles-flown> <miles-earned>92731</miles-earned> </month> <month sequence="03"> <miles-flown>19920</miles-flown> <miles-earned>76725</miles-earned> </month> <month sequence="04"> <miles-flown>18903</miles-flown> <miles-earned>31781</miles-earned> </month> </report> La feuille de style suivante utilise la fonction round() : <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:months="Lookup table for month names"> <months:name sequence="01">January</months:name> <months:name sequence="02">February</months:name> <months:name sequence="03">March</months:name> <months:name sequence="04">April</months:name> <months:name sequence="05">May</months:name> <months:name sequence="06">June</months:name> <months:name sequence="07">July</months:name> <months:name sequence="08">August</months:name> <months:name sequence="09">September</months:name> <months:name sequence="10">October</months:name> <months:name sequence="11">November</months:name> <months:name sequence="12">December</months:name> <xsl:output method="text"/> <xsl:variable name="newline"> <xsl:text> </xsl:text> </xsl:variable> <xsl:template match="/"> <xsl:value-of select="$newline"/> <xsl:text>Tests of the round() function:</xsl:text> <xsl:value-of select="$newline"/> <xsl:value-of select="$newline"/> <xsl:text> "round('7.983')" = </xsl:text> <xsl:value-of select="round('7.983')"/> <xsl:value-of select="$newline"/> <xsl:text> "round('7.5')" = </xsl:text> <xsl:value-of select="round('7.5')"/> <xsl:value-of select="$newline"/> <xsl:text> "round('-7,893')" = </xsl:text> <xsl:value-of select="round('-7,893')"/> <xsl:value-of select="$newline"/> <xsl:text> "round('-7,5')" = </xsl:text> <xsl:value-of select="round('-7,5')"/> <xsl:value-of select="$newline"/> <xsl:text> "round(/report/month[@sequence='01']/miles-flown)" = </xsl:text> <xsl:value-of select="round(/report/month[@sequence='01']/miles-flown)"/> <xsl:value-of select="$newline"/> <xsl:text> "round(document('')/*/months:name[@sequence='02'])" = </xsl:text> <xsl:value-of select="round(document('')/*/months:name[@sequence='02'])"/> <xsl:value-of select="$newline"/> <xsl:value-of select="$newline"/> <xsl:for-each select="/report/month"> <xsl:text> </xsl:text> <xsl:value-of select="document('')/*/months:name[@sequence=current()/@sequence]"/> <xsl:text> - </xsl:text> <xsl:value-of select="format-number(miles-flown, '##,###')"/> <xsl:text> miles flown, </xsl:text> <xsl:value-of select="format-number(miles-earned, '##,###')"/> <xsl:text> miles earned.</xsl:text> <xsl:value-of select="$newline"/> <xsl:text> (Averaged </xsl:text> <xsl:value-of select="round(miles-earned div miles-flown)"/> <xsl:text> miles earned for each mile flown.)</xsl:text> <xsl:value-of select="$newline"/> </xsl:for-each> </xsl:template> </xsl:stylesheet> Une fois le document XML traité à l'aide de la feuille de style, les résultats sont les suivants : Tests of the round() function: "round('7.983')" = 8 "round('7.983')" = 8 "round('-7.893')" = -8 "round('-7.5')" = -7 "round(/report/month[@sequence='01']/miles-flown)" = 12379 "round(document('')/*/months:name[@sequence='02'])" = NaN January - 12,379 miles flown, 35,215 miles earned. (Averaged 3 miles earned for each mile flown.) February - 32,857 miles flown, 92,731 miles earned. (Averaged 3 miles earned for each mile flown.) March - 19,920 miles flown, 76,725 miles earned. (Averaged 4 miles earned for each mile flown.) April - 18,903 miles flown, 31,781 miles earned. (Averaged 2 miles earned for each mile flown.) Ces résultats peuvent être comparés à ceux de la fonction ceiling() et de la fonction floor(). |