XML文件:
<formattedEgGesamt>270.94</formattedEgGesamt>
<formattedEgGesperrt>50.00</formattedEgGesperrt>
<formattedHgGesamt>78.18</formattedHgGesamt>
<formattedHgGesperrt>4.00</formattedHgGesperrt>
在我的XSL文件中,我声明了4个变量:
<xsl:variable name="HGGesamt">
<xsl:value-of select="format-number(/Basis/PersonenkontoDTO/formattedHgGesamt,'#.00')"/>
</xsl:variable>
<xsl:variable name="HGGesperrt">
<xsl:value-of select="format-number(/Basis/PersonenkontoDTO/formattedHgGesperrt,'#.00')"/>
</xsl:variable>
<xsl:variable name="EGGesamt">
<xsl:value-of select="format-number(/Basis/PersonenkontoDTO/formattedEgGesamt,'#.00')"/>
</xsl:variable>
<xsl:variable name="EGGesperrt">
<xsl:value-of select="format-number(/Basis/PersonenkontoDTO/formattedEgGesperrt,'#.00')"/>
</xsl:variable>
这些变量用于计算formattedHgGesamt和formattedHgGesperrt以及formattedEgGesamt和formattedEgGesperrt之间的差异。
应打印结果。
以下是用于打印2个结果的代码:
<fo:table-cell padding="3pt" display-align="center" border-style="solid" border-width="1pt" border-color="white">
<fo:block font-family="Courier" text-align="right" font-weight="bold">
<xsl:value-of select="format-number(exsl:node-set($HGGesamt)-exsl:node-set($HGGesperrt),'#.00')"/> €
</fo:block>
</fo:table-cell>
<fo:table-cell padding="3pt" display-align="center" border-style="solid" border-width="1pt" border-color="white">
<fo:block font-family="Courier" text-align="right" font-weight="bold">
<xsl:value-of select="format-number(exsl:node-set($EGGesamt)-exsl:node-set($EGGesperrt),'#.00')"/> €
</fo:block>
</fo:table-cell>
打印关于HGGesamt和HGGesperrt的第一行代码的结果,结果是正确的。 对于EGGesamt-EGGesperrt,它只打印&#34; NaN&#34;
有人有想法,为什么?
答案 0 :(得分:1)
<formattedEgGesamt>270.94</formattedEgGesamt>
的数据中似乎有一个带有Unicode 8203(U + 200B,零宽度空间)的非数字字符。小数点后。这样,数字计算就会产生NaN。
答案 1 :(得分:1)
正如@ martin-honnen所说。
还有更简单的方法来获得您想要的数字,例如。
<xsl:variable name="HGGesamt" select="/Basis/PersonenkontoDTO/formattedHgGesamt"/>
<xsl:variable name="HGGesperrt" select="/Basis/PersonenkontoDTO/formattedHgGesperrt"/>
<xsl:variable name="EGGesamt" select="/Basis/PersonenkontoDTO/formattedEgGesamt"/>
<xsl:variable name="EGGesperrt" select="/Basis/PersonenkontoDTO/formattedEgGesperrt"/>
和
<xsl:value-of select="format-number($HGGesamt - $HGGesperrt,'#.00')"/> €
...
<xsl:value-of select="format-number($EGGesamt - $EGGesperrt,'#.00')"/> €