xsl-list
[Top] [All Lists]

Re: [xsl] format-number round is not desired

2012-04-23 05:07:01
floor() adjusts towards minus infinity. It sounds like you want to adjust towards zero. A crude way to do that is to convert to a string and use substring-before($x, '.'), then convert back to a number. I would tend to prefer (for XPath 2.0)

if (abs($x) ge 0) then floor($x) else ceiling($x)

Or if it's worth implementing some functions then define

signum($x) ==> if ($x gt 0) then +1 else if ($x lt 0) then -1 else 0

and

truncate($x) ==> floor(abs($x)) * signum($x)

Michael Kay
Saxonica

On 23/04/2012 10:26, henry human wrote:
Hi guys
There is still a penalty, now If the number is negative the floor funciton 
rounds!
Sample:
$var = - 20624.50
output = -0000000020625
-------------------------------------
The output should be -0000000020624
?


----- Ursprüngliche Message -----
Von: henry human<henry_human(_at_)yahoo(_dot_)de>
An: 
"xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com"<xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
CC:
Gesendet: 15:09 Donnerstag, 19.April 2012
Betreff: Re: [xsl] format-number round is not desired

Hi all!
That is the solution!
Thanks a lot!
Kind regards
Hen

----- Ursprüngliche Message -----
Von: Martin Honnen<Martin(_dot_)Honnen(_at_)gmx(_dot_)de>
An: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
CC:
Gesendet: 13:59 Donnerstag, 19.April 2012
Betreff: Re: [xsl] format-number round is not desired

henry human wrote:
Hello
I have following :
$var = 206000.7625
<xsl:value-of select="format-number($var ,'00000000000000;00000000000000') "/>
Output is  00000000206001
As you see the output is rounded, what is not desired!
This should be the output: 00000000206000
(the same as in  $var = 206000)
Does
   format-number(floor($var), '00000000000000;00000000000000')
do what you want?



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--