Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在2.0版XSLT中,如何计算数字的绝对值_Xslt - Fatal编程技术网

在2.0版XSLT中,如何计算数字的绝对值

在2.0版XSLT中,如何计算数字的绝对值,xslt,Xslt,我想取TaxAmount的绝对值,但我尝试了ABS函数,它不起作用。你知道吗 我的版本是2.0。 我尝试在Internet Explorer上使用xml文件 我想把它显示为积极的,有时它可以是消极的,也可以是积极的 <div style="float:left; width:100pt"> <h2> :<xsl:value-of select="fo

我想取TaxAmount的绝对值,但我尝试了ABS函数,它不起作用。你知道吗

我的版本是2.0。 我尝试在Internet Explorer上使用xml文件

我想把它显示为积极的,有时它可以是消极的,也可以是积极的

<div style="float:left; width:100pt">
        <h2>                                           
        :<xsl:value-of select="format-number(cbc:TaxAmount,'#,##0.00', 'us')"/>
        </h2>
</div>

:
您可以使用abs()函数


您可以使用if语句

<xsl:choose>
     <xsl:when test="cbc:TaxAmount < 0">
       <xsl:value-of select="format-number(cbc:TaxAmount * -1,'#,##0.00', 'us')"/>
     </xsl:when>
     <xsl:otherwise>
      <xsl:value-of select="format-number(cbc:TaxAmount,'#,##0.00', 'us')"/>
     </xsl:otherwise>
   </xsl:choose>


或者,如果其PositiveInternetExplorer不支持xslt 2.0,因此无法识别abs()函数,则创建一个将值乘以-1的变量。XSLT1.0中最简单的方法是将其转换为字符串,去掉任何“-”,然后再转换回数字:
number(translate(string($x),“-”,”)
。(我在这里通过显式函数显示了转换,但如果您愿意,可以依赖隐式转换)。@MichaelKay我尝试了您的风格,但我发现数字格式错误<代码>:无法帮助您,因为您没有提供足够的上下文,我需要查看完整的源文档和完整的样式表。
<xsl:choose>
     <xsl:when test="cbc:TaxAmount < 0">
       <xsl:value-of select="format-number(cbc:TaxAmount * -1,'#,##0.00', 'us')"/>
     </xsl:when>
     <xsl:otherwise>
      <xsl:value-of select="format-number(cbc:TaxAmount,'#,##0.00', 'us')"/>
     </xsl:otherwise>
   </xsl:choose>