Форматирование чисел, исключая конечные нули - PullRequest
0 голосов
/ 19 января 2009

первый раз ТАК пользователь:)

Я знаю, что могу отформатировать число следующим образом:

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

Но я бы хотел удалить точку и нули, если $ value равно нулю.

Итак,

37368 -> 37,368
2.666667 -> 2.66

Возможно ли это, используя только числовое форматирование (не похоже на это), или я должен сделать что-то вроде

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

Ответы [ 2 ]

1 голос
/ 19 января 2009
format-number($value, '###,###.##')
0 голосов
/ 19 января 2009

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 не существует, чтобы вывести вас из этого, но я мог бы упустить что-то экзотическое.

...