Re: [xsl] XPath / XSLT 2.1 - Rounding algorithms

Subject: Re: [xsl] XPath / XSLT 2.1 - Rounding algorithms
From: "Peter Rushforth" <peter.rushforth@xxxxxxxxx>
Date: Thu, 13 Nov 2008 22:13:14 -0500
Hi Ken,

Thanks for your reply.

> Not sure where you read that ... the round() function goes to the nearest
> whole number or does a ceiling() for the value "x.5":
>
>  http://www.w3.org/TR/2007/REC-xpath-functions-20070123/#func-round

OK you're right, and I remember looking at that.
But that's integer rounding, not really what I'm looking for.

>
>> Specifically, round-half-up(decimal_num,num_digits), where 'up' means
>> towards
>> positive or negative infinity, is what I'm looking for.

round(3.065) returns 3. , whereas my need is for
a function to return 3.07 (say), something like this, say:

round-half-up(3.065,2) -> 3.07
round-half-up(-3.065,2) -> -3.07

>
> Except for the number of digits you could do:
>
>  if( x < 0 ) then -( round(abs(x)) ) else round(x)
>
> ... and use format-number() to handle the digits bit.

That's the kind of jumping through hoops I was hoping to avoid.

>
> I hope the example below helps.

It does, I think it illustrates my point.

Cheers,
Peter

Current Thread