2012-07-22 51 views
2

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

给我12,34,56 但是从我读,逗号是一组分离器,所以我想它应该是1234,56。显然,我对它的理解是错误的。有人可以向我解释吗?

回答

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规范来定义格式编号,这很难掌握当今;如果记忆正确地为我服务,它就会留下许多未解答的详细问题。