XMLのformat-numberでコンマを使用する方法を理解するのにいくつかの問題があります。例えば、
<xsl:value-of select="format-number(123456,'####,##')"/>
私に12,34,56を与えますが、私が読んだことから、コンマはグループ区切り文字であるため、1234,56である必要があると思いました。明らかに、私はそれが間違っていると理解しています。誰かが私にそれを説明してもらえますか?
1234,56 を期待する理由はわかります。仕様を注意深く見るまでは、私もそれを期待していました。それはあなたの写真 ####,## を取り、あなたの写真にグループ化セパレータを含む位置のリストとして「整数部分グループ化位置」を計算します: このリストは単純に (2) です。次に、「これらの整数部分のグループ化位置が一定の間隔である場合 (つまり、数値が 1 つしかない場合を含む、ある整数値 N に対してシーケンス N、2N、3N、... を形成する場合)リスト内)、[グループ化位置の] シーケンスには、可能な最大数に対応するために必要な限り、N のすべての整数倍が含まれます。」
したがって、ここでのグループ化位置のシーケンスは (2,4,6,8,...) になります。画像の 4 番目の位置にグループ セパレータがないという事実は、規則には含まれません。おそらくそうすべきですが、そうではありません。このフォーマットを実現するには、#,################,## のような画像を使用する必要があります。
ちなみに、これは XSLT 2.0 のものです。XSLT 1.0 仕様では、DecimalFormat の JDK 1.1.8 仕様を参照して format-number を定義していますが、これは現在入手するのが非常に困難です。記憶が正しければ、多くの詳細な質問に答えられないままになります。