RE: [xsl] how to keep big integer format?

Subject: RE: [xsl] how to keep big integer format?
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 20 Oct 2006 00:19:02 +0100
> I am using xslt to transform xml to xml and want to update 
> object_id value by adding 1. But the result returns 
> 4.967039E6 instead of 4967039.
> How can I get what I want?
> 

XSLT 1.0 never uses exponential notation on output; XSLT 2.0 uses it by
default for floating point numbers outside the range 1e-6 to 1e+6. The
simplest way to avoid exponential notation is to use integer arithmetic
rather than floating point arithmetic. You're probably using floating point
because that's the default for untyped data when you don't have a schema.
You can convert to an integer instead by using, for example
xs:integer(object_id)+1. - or, of course, by doing schema-aware processing
with a schema that describes the type of object_id as xs:integer.

Michael Kay
http://www.saxonica.com/

Current Thread