格式化数字,不包括尾随零

时间:2009-01-19 14:33:45

标签: formatting xslt numbers

第一次SO用户:)

我知道我可以格式化这样的数字:

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

但是如果$ value为零,我想删除点和零。

所以,

37368 -> 37,368
2.666667 -> 2.66

这可能只使用数字格式(看起来不像)或者我必须按照

的方式做一些事情吗?
if (int(value) == value ) {...}

2 个答案:

答案 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功能可以帮助你摆脱困境,但我可能会错过异国情调。