第一次SO用户:)
我知道我可以格式化这样的数字:
format-number($value, '###,###.00')
但是如果$ value为零,我想删除点和零。
所以,
37368 -> 37,368
2.666667 -> 2.66
这可能只使用数字格式(看起来不像)或者我必须按照
的方式做一些事情吗?if (int(value) == value ) {...}
答案 0 :(得分:1)
format-number($value, '###,###.##')
答案 1 :(得分: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>
..或mixin扩展(.NET可以本地执行此操作,否则EXSLT存在,可能有更多选项可用)
据我所知,没有xpath功能可以帮助你摆脱困境,但我可能会错过异国情调。