Reputation: 1816
I am facing problem while printing a decimal value (0) with point. As per requirement leading (0) zero should be print:
XML: here all percent value is in 0.something.
<root>
<rate final="280" percent="0.1921"/>
<rate final="180" percent="0.18"/>
<rate final="170" percent="0.17201"/>
<rate final="70" percent="0.1"/>
</root>
XSLT: I am using this XSLT with format-number function because i need only two digits after dot (.).
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs"
version="2.0">
<xsl:output indent="yes"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="rate">
<rate>
<xsl:apply-templates select="@*"/>
<xsl:value-of select="concat('Final Percentage is : ', format-number(@percent, '#,###,###,###.00'),'%')"/>
</rate>
</xsl:template>
</xsl:stylesheet>
Desired OUTPUT: Result which i want with leading 0.
<?xml version="1.0" encoding="UTF-8"?>
<root>
<rate final="280" percent="0.1921">Final Percentage is : 0.19%</rate>
<rate final="180" percent="0.18">Final Percentage is : 0.18%</rate>
<rate final="170" percent="0.17201">Final Percentage is : 0.17%</rate>
<rate final="70" percent="0.1">Final Percentage is : 0.10%</rate>
</root>
CURRENT OUTPUT: Current result i am getting with my XSLT
<?xml version="1.0" encoding="UTF-8"?>
<root>
<rate final="280" percent="0.1921">Final Percentage is : .19%</rate>
<rate final="180" percent="0.18">Final Percentage is : .18%</rate>
<rate final="170" percent="0.17201">Final Percentage is : .17%</rate>
<rate final="70" percent="0.1">Final Percentage is : .10%</rate>
</root>
Upvotes: 1
Views: 2583
Reputation: 163625
Answered by Martin Honnen in comments:
Change the second argument of the format-number call to 0.00 to indicate you need a leading zero.
Upvotes: 0