0

初めてのSOユーザー:)

次のように数値をフォーマットできることを知っています。

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

しかし、$value がゼロの場合は、ドットとゼロを削除したいと思います。

そう、

37368 -> 37,368
2.666667 -> 2.66

これは、数値の書式設定だけを使用して可能ですか(そうではないようです)、または次の行に沿って何かをする必要がありますか?

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

2 に答える 2

1
format-number($value, '###,###.##')
于 2009-01-19T16:40:42.657 に答える
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 関数は存在しませんが、エキゾチックなものが欠けている可能性があります。

于 2009-01-19T14:53:34.120 に答える