2009-01-19 113 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