OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help



   Re: [xml-dev] Parsing numbers in Scientific Notation

[ Lists Home | Date Index | Thread Index ]

On Tue, 2004-05-04 at 14:12, Nicholas Shanks wrote:
> Hey all, I'm an XML newbie so go easy on me :o)
> I am writing a DTD and XSLT file for a table of astronomical data, and 
> would like values to be given in SI units. For many things this means 
> astronomically large numbers like 5.0 x 10^30. I would like not to have 
> to specify that using standard decimal notation (as used by 
> format-number() and xsl:decimal-number) as it would be prone to errors 
> and look awful! Is there a built-in way to parse a string such as "5.0 
> x 10^30" and then perform mathematical operations on it, like divide it 
> by the mass of the sun (1.99 x 10^30), so it outputs a simpler number 
> like "2.5" ?
> If there is no such built in method, how would I go about writing some 
> XSL/XPath voodoo to make it happen?

XSLT is excellent for transforming XML documents, but it is not
optimized for handling mathematics.

It would be easier to split the process into steps. Use XSLT for the XML
transformation, and some other programming language to do the math.

If you use a scripting language, such as Perl, the conversion between
strings and numbers is automatic. There are also plenty of math
libraries that you might find useful, such as Math::BigInt,
Physics::Unit, and others. (Check out http://www.cpan.org/.)



News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS