XSLT 1.0:数字格式问题

4

我有一个关于数字格式的问题。 在我的源XML中,我有:

<ValueDeltAbsol>1.358.68842</ValueDeltAbsol>

现在这个数字实际上是1,358,688.42。所以我的问题是小数点完全丢失了。我的想法是首先使用“translate()”去掉“。”,然后最后两位自动成为小数。
我尝试了以下方法:
<xsl:value-of select="format-number(translate(ValueDelt,'.',''),'#.00')" />
<xsl:value-of select="format-number(translate(ValueDelt,'.',''),'#.##')" />
<xsl:value-of select="format-number(translate(ValueDelt,'.',''),'###,###.##')" />

这个问题是关于如何将数字格式化的问题。对于给定的数字 135868842.00、135868842 和 135,868,842,它们分别表示同一个数值。

不过,无法直接将最后两位小数的值显示为逗号分隔的千位数。请问有没有人能告诉我是否可以实现我的需求呢?

输入:<ValueDeltAbsol>1.358.68842</ValueDeltAbsol>。期望输出:<ValueDeltAbsol>1,358,688.42</ValueDeltAbsol>

1个回答

4
如果始终存在两位小数,您可以将翻译后的值除以100:
<xsl:value-of select="format-number(number(translate(ValueDelt,'.','')) div 100,'###,###.00')" />

输出:

<ValueDeltAbsol>1,358,688.42</ValueDeltAbsol>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接