Subject: RE: rounding within the "format-number" function
From: "Haarman, Michael" <mhaarman@xxxxxxxxx>
Date: Thu, 26 Jan 2006 11:43:00 -0600
|
> From: Haarman, Michael
>
> It may be that what OP is witnessing is an artifact of floating point
> calculations returning something like .49999999 and rounding down.
>
> > > <xsl:value-of select='format-number( round(100*$number) div 100 ,
> > > "##.00" )'
>
> Isn't it the case that this can still fail, only quite a bit less
> frequently? To ensure correct up-rounding, use this:
>
> <xsl:value-of select="format-number(ceiling(100 * $number)
> div 100, '##.00')"/>
Forgive the reply to myself. I'd ask you to ignore the bit of dumbness
exposed above. ceiling() is a mistake here.
It remains true that round() can occasionally expose the vagaries of
floating point math.
Mike
|