格式数字,不包括尾随零
问题描述:
第一次那么用户:)格式数字,不包括尾随零
我知道我可以格式的数字是这样的:
format-number($value, '###,###.00')
但我想删除的点,如果$的零值为零。
所以,
37368 -> 37,368
2.666667 -> 2.66
这可能只使用数字格式(似乎并不喜欢它),或做我必须做的沿
if (int(value) == value) {...}
答
format-number($value, '###,###.##')
答
的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
嗯。我或多或少误读了OP的条件非零数字(我认为他们需要.00) - 对于上述情况,我认为这是正确的答案。 – annakata 2009-01-19 17:27:28