2009-01-19 112 views
0

第一次那麼用戶:)格式數字,不包括尾隨零

我知道我可以格式的數字是這樣的:

format-number($value, '###,###.00') 

但我想刪除的點,如果$的零值爲零。

所以,

37368 -> 37,368 
2.666667 -> 2.66 

這可能只使用數字格式(似乎並不喜歡它),或做我必須做的沿

if (int(value) == value) {...} 

回答

1
format-number($value, '###,###.##') 
+0

嗯。我或多或少誤讀了OP的條件非零數字(我認爲他們需要.00) - 對於上述情況,我認爲這是正確的答案。 – annakata 2009-01-19 17:27:28

0

的XPath東西線2.0包含條件邏輯if..then..else,但在更可能的情況下,你在xpath 1.0恐怕你必須依靠XSLT來爲你做這件事,即:

<xsl:variable name="myvar"> 
    <xsl:choose> 
    <xsl:when test="$value > 0"> 
     <xsl:select="format-number($value, '###,###.00')"/> 
    </xsl:when> 
    <xsl:otherwise>0</xsl:otherwise> 
    </xsl:choose>> 
</xsl:variable> 

..或混入的擴展(.NET本身能做到這一點,EXSLT存在,否則,可能提供更多的選擇)

據我所知,沒有XPath函數存在讓你出這一點,但我可以缺少異國情調。

+0

實際上,這是用於在公司內部使用的日誌。我幾乎可以假設每個人都使用他們瀏覽器的最新版本。所以我認爲XSLT/XPath 2.0可以嗎? – Srekel 2009-01-19 16:10:46