XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
vasant bSubject: XSLT formatting number issue
Author: vasant b
Date: 07 Jan 2009 05:55 AM
I would like to format a number. The number should contain 6 digits after the decimal. However it should be dynamic. As soon as a single number is infinite, the number must be rounded. E.g. 1.3333333 should be set to 1.34; 1.543200 --> 1.5432; 1.000000 --> 1. Please help me in with this issue.

Thanks in advance,
Vasant

Postnext
(Deleted User) Subject: XSLT formatting number issue
Author: (Deleted User)
Date: 08 Jan 2009 09:55 AM
Hi Vasant,
provided that the rounding of 1.333333 can never be 1.34, you are looking for format-number().
If you write

<xsl:value-of select="format-number(1.36666666,'#.######')"/>
<xsl:value-of select="format-number(1.543200,'#.######')"/>
<xsl:value-of select="format-number(1.00000000,'#.######')"/>

you will get 1.366667, 1.5432 and 1

Alberto

Postnext
vasant bSubject: XSLT formatting number issue
Author: vasant b
Date: 08 Jan 2009 11:09 PM
Originally Posted: 08 Jan 2009 11:08 PM
Thank you Alberto!!

But in case the number becomes infinite, ( e.g 1.33333333333....) our business requirement says it should be rounded ( e.g 1.34)

1.344444444444.... --> 1.345
1.2223333333333333.... -> 1.22234

Is this possible?. Thanks a lot for your support.

Regards,
Vasant

Postnext
Tony LavinioSubject: XSLT formatting number issue
Author: Tony Lavinio
Date: 09 Jan 2009 01:05 AM
Why would you ever round 1.333333 to 1.34? The last three would
round down, not up. To do otherwise is mathematically incorrect.

Postnext
vasant bSubject: XSLT formatting number issue
Author: vasant b
Date: 12 Jan 2009 05:41 AM
Hi Tony,

The number that I would like to format can result from two situations.

Manual :- In case of manually entered in a front end, I need to format it to 6 digits.

Automatic :- It may be a result of divison operation
for example 4/3 --> 1.33333333333........ In such situations I need to round it to 1.34.

Thanks,
Vasant

Postnext
Tony LavinioSubject: XSLT formatting number issue
Author: Tony Lavinio
Date: 12 Jan 2009 10:34 AM
I realize that the customer is always supposed to be right, but I'm
sorry but in this case rounding 1.33333 -> 1.34 is just plain wrong.

1.33333 should at the least be rounded to 1.33. A trailing 3 should
never be rounded up.

Are you SURE that is a business requirement? We ask because in order
to find an algorithm that does what you want, we really have to
understand your process.

Postnext
vasant bSubject: XSLT formatting number issue
Author: vasant b
Date: 14 Jan 2009 07:36 AM
Hi Tony,

I am sorry. My requirement is as follows.


1.33333333333333... --> 1.33
1.11122222222222... --> 1.11122
1.55555555555555... --> 1.56
1.88888888888888... --> 1.89
1.28966666666666... --> 1.28967

In every other cases ( i.e when the number is not infinte)it shoud be rounded to 6 decimals.

for ex :- 1.12345678 --> 1.123456


Thanks a lot for your support.
Vasant

Postnext
Minollo I.Subject: XSLT formatting number issue
Author: Minollo I.
Date: 14 Jan 2009 02:15 PM
I'm not sure I'm following what you are trying to do; but these formats will output the numbers the way you are looking for:
<xsl:value-of select="format-number(1.33333333333333, '#.##')"/>;
<xsl:value-of select="format-number(1.11122222222222, '#.#####')"/>;
<xsl:value-of select="format-number(1.55555555555555, '#.##')"/>;
<xsl:value-of select="format-number(1.88888888888888, '#.##')"/>;
<xsl:value-of select="format-number(1.28966666666666, '#.#####')"/>

Postnext
vasant bSubject: XSLT formatting number issue
Author: vasant b
Date: 15 Jan 2009 12:37 AM
Hi,

The number is not known at the begining. I would be reading it from an XML node. I should handle it based on the value of the node. Please see an example below.

For example I would be reading it from the XSL path '/Shares/share/rate'. So based on the value of the rate, I need to format it. In otherwords, i need to handle it dynamically.

Thanks,
Vasant

Posttop
Minollo I.Subject: XSLT formatting number issue
Author: Minollo I.
Date: 15 Jan 2009 08:53 AM
...handle it as a string (string-length, substring, ...), check its length, number of digits, and use the formatting logic that better suites your needs.

 
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.