使用XSL
添加數字時,顯示的結果爲exponent
。例如,如果ProductID
是1111
XSL顯示帶指數的結果
<xsl:value-of select="@ProductID + 1000000"/>
它顯示像1.1111E6
,但是我想要的結果是1001111
。
謝謝。
使用XSL
添加數字時,顯示的結果爲exponent
。例如,如果ProductID
是1111
XSL顯示帶指數的結果
<xsl:value-of select="@ProductID + 1000000"/>
它顯示像1.1111E6
,但是我想要的結果是1001111
。
謝謝。
您大概使用了非模式感知轉換,因此@ProductID的值是無類型的,這意味着當您進行算術運算時,結果是xs:double。如果你沒有整數運算:
xs:integer(@ProductID) + 1000000
結果將是一個xs:整數,將這樣的輸出。
在XPath 1.0中,所有的算術都是xs:double算術,但是數字到字符串的轉換規則通過要求輸出「整數」就好像它們是整數一樣來隱藏這個事實。
你似乎使用XSLT 2.0處理器(我用產生想要的答案都不同5-6 XSLT 1.0處理器 - 1001111
使用XSLT 2.0處理器,只是轉換@ProductID
到xs:decimal
:
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/*">
<xsl:value-of select="xs:decimal(@ProductID) + 1000000"/>
</xsl:template>
</xsl:stylesheet>
當該變換被應用在下面的XML文檔:
<t ProductID="1111"/>
想要的,正確的結果產生:使用xs:decimal(someNumber)
構造和十進制算法保證了結果的最大精度,萬一someNumber
可以有
:
1001111
請注意非整數值。
類型xs:decimal
爲xs:integer
基本類型,即任何xs:integer
也是xs:decimal
,所以這個解決方案的工作也可用於任何整數值。
檢查格式編號功能。您可能在這裏有一些線索:http://stackoverflow.com/questions/3758978/xslt-format-number-with-comma – BiAiB