XSLT error with number and format-number functions

S

silellak

I have found an odd error when using an XSL stylesheet transform. We
have a Notes/Domino application with the following line of code in one
of the stylesheets:

<xsl:value-of
select="format-number(number(ActEmpMoneyValue),'###,###0.00')" />

After transforming an XML document object with this stylesheet, the
value in the XML node ActEmpMoneyValue is not calculated, but a flat
value such as "19.31". After being processed as above on our local
system/codebase, it becomes "19.31", as expected. However, the exact
same code on certain customer systems takes "19.31" and turns it into

"19.3000000000000000009"

As far as I can tell, the only reasonable explanation for this issue is
that the functions are returning an incorrect value. When I changed it
to just use the "number" function, I got the same result - same with
just the "format-number" function. When I used neither, the result was
correct.

Has anyone seen similar behavior? If so, how did they get around it?

Thanks!
 
J

Joe Kesselman

> However, the exact
same code on certain customer systems

.... which are obviously running a different release of something.
(Notes? Java? The XSLT engine, whichever it is? Other?) If you've got
outdated code the first thing to try is upgrading; it may be a
legitimate bug that's already been fixed.

This smells like either a floating-point-math roundoff problem, or a
flat-out bug in the XSLT implementation's math/rendering routines.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,995
Messages
2,570,230
Members
46,819
Latest member
masterdaster

Latest Threads

Top