Subject: Re: 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
|