Menar du i xsl?
Finns det någon funktion som alltid avrundar ett tal uppåt?
9 svar · 519 visningar · startad av HeHo
Finns det någon funktion som alltid avrundar ett tal uppåt?
Menar du i xsl?
ja!
Det finns i xsl en funktion som heter floor() som avrundar neråt, och då kan man ju tänka sig att det borde finnas en ceil() också, men det gör det inte, av någon anledning.
Den enda lösningen jag kan komma på är att lägga på 0.5 och använda floor() på resultatet. Exempel
<xsl:value-of select="floor(@myValue+0.5)"/>
Mvh,
OK!
Tack för hjälpen!
@nders skrev:
Det finns i xsl en funktion som heter floor() som avrundar neråt, och då kan man ju tänka sig att det borde finnas en ceil() också, men det gör det inte, av någon anledning.
Den enda lösningen jag kan komma på är att lägga på 0.5 och använda floor() på resultatet. Exempel
<xsl:value-of select="floor(@myValue+0.5)"/>Mvh,
@myValue = 5.1
@myValue + 0.5 = 5.6
floor(@myValue) = 5
Det funkar nog inte så bra.. ;)
Hmm, nej, helt klart inte. :) :r
Man får väl kanske ha en liten if-sats runt. XSL är krångligt.
Jag tänker till lite extra då. :)
Följande är det min hårt ansträngda hjärna lyckas producera just nu. Om någon har en bättre lösning så lyssnar jag uppmärksamt. :)
<xsl:choose>
<xsl:when test="@value-floor(@value)>0">
<xsl:value-of select="@value+1" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="@value" />
</xsl:otherwise>
</xsl:choose>
Mvh
@nders skrev:
Det finns i xsl en funktion som heter floor() som avrundar neråt, och då kan man ju tänka sig att det borde finnas en ceil() också, men det gör det inte, av någon anledning.
Det är ren och skär lögn! ;)
Det visar sig att det visst finns, bara det att funktionen heter ceiling().
Använd alltså detta:
<xsl:value-of select="ceiling(@myValue)" />
Ledsen för all förvirring.
Jag förvirrade mig själv också, tydligen. :moose
Mvh
ok! :e