2

我在理解如何在 XML 格式编号中使用逗号时遇到了一些困难。例如, <xsl:value-of select="format-number(123456,'####,##')"/>

给我 12,34,56 但从我读到的,逗号是组分隔符,所以我认为它应该是 1234,56。显然,我理解错了。有人可以向我解释一下吗?

4

1 回答 1

3

我可以理解为什么你会期望 1234,56,这也是我所期望的,直到我仔细查看了规范。它会拍摄您的照片####,## 并计算“整数部分分组位置”作为您的图片中包含分组分隔符的位置列表:此列表很简单 (2)。然后它说“如果这些整数部分分组位置是定期的(也就是说,如果它们形成一个序列 N,2N,3N,......对于某个整数值 N,包括只有一个数字的情况在列表中),那么[分组位置的]序列包含 N 的所有整数倍,以容纳最大可能的数字。”

所以这里的分组位置序列最终是 (2,4,6,8,...)。您的图片在位置 4 没有分组分隔符这一事实不符合规则 - 它可能应该,但它没有。您必须使用像 #,################,## 这样的图片来实现这种格式。

顺便说一下,这是来自 XSLT 2.0。XSLT 1.0 规范参考了 JDK 1.1.8 规范的 DecimalFormat 定义了 format-number,现在很难掌握;如果我没记错的话,它会留下许多未回答的详细问题。

于 2012-07-22T15:09:51.673 回答