我在理解如何在XML格式中使用逗号时遇到一些困难。
例如,
<xsl:value-of select="format-number(123456,'####,##')"/>
给了我12,34,56 但是根据我的阅读,逗号是一个组分隔符,所以我认为应该是1234,56。显然,我理解错了。有人可以向我解释一下吗?
答案 0 :(得分:3)
我可以看到为什么你会期待1234,56,这也是我的预期,直到我仔细查看规格。它将您的图片####,##和计算“整数 - 部分分组位置”计算为图片中包含分组分隔符的位置列表:此列表只是(2)。然后它说“如果这些整数 - 部分 - 分组 - 位置是有规律的间隔(即,如果它们形成序列N,2N,3N,...对于某个整数值N,包括只有一个数字的情况在列表中),然后[分组位置]序列包含所有N的整数倍,以便容纳最大可能的数字。“
因此,这里的分组位置序列最终为(2,4,6,8,...)。您的图片在第4位没有分组分隔符的事实不会进入规则 - 它可能应该,但事实并非如此。您必须使用#,################,##等图片来实现此格式化。
顺便说一句,这是来自XSLT 2.0。 XSLT 1.0规范通过引用DecimalFormat的JDK 1.1.8规范来定义format-number,这是当今极难掌握的;如果记忆正确地为我服务,那么就会留下许多未解答的详细问题。