Thanks Michael.
You are right the Applet and the last XSLT processor (that I inaccurately called JAXP) is using Sun/Oracle J2SE 5.0 that is JAXP 1.3 reference implementation (according to
http://jaxp.java.net/1.3/index.html) supporting XSLT 1.0 and XPath 1.0.
Actually when I get NaN that's fine.
When I convert the 1.0E-6 value to fixed point number with a recursive xsl that results in [0.0000010000000000000002] that is still fine...
Now the output of for the same XSL is:
Applet: 0.0000010000000000000002:[
0.005362758289192256]
xsltproc: 1e-06:[ 1e-06]
Saxon: 0.0000010000000000000002:[0.0000010000000000000002]
XalanJ: 0.0000010000000000000002:[0.0000010000000000000002]
JAXP: 1.0000000000000002E-6:[0.0000010000000000000002]
As I wrote the Applet and the last XSLT processor are using the same J2SE code (from class javax.xml.transform.Transformer) but they Applet gives totally wrong value for the number() function.
Do you think it's a bug in the J2SE JAXP implementation?