gpt4 book ai didi

xslt - XSLT 1.0 中的总和差异问题/错误

转载 作者:行者123 更新时间:2023-12-04 23:33:23 25 4
gpt4 key购买 nike

我有这个 XML 数据,并尝试使用下面的 XSLT 片段对其进行汇总。

Xml

<?xml version="1.0" encoding="utf-8"?>
<values>
<value>159.14</value>
<value>-2572.50</value>
<value>-2572.50</value>
<value>2572.50</value>
<value>2572.50</value>
<value>-159.14</value>
</values>

Xslt
<?xml version="1.0" encoding="utf-8"?>

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<xsl:value-of select="sum(values/value)"/>
</xsl:template>

</xsl:stylesheet>

在我的世界中,值应该是 0 但它最终是 -0.0000000000005684341886080801

在 Visual Studio 中运行它并亲自查看。 为什么? 这是发生了吗?

最佳答案

似乎您的 XSLT 处理器在求和之前将十进制数字字符串转换为浮点精度数字;

好吧,您始终可以使用 round 函数并除以所需的精度或使用 format-number 函数(如果可用):

<xsl:template match="/">
<xsl:value-of select="round(sum(values/value)) div 100"/><br />
<xsl:value-of select="format-number(sum(values/value), '0.00')"/>
</xsl:template>

关于xslt - XSLT 1.0 中的总和差异问题/错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1845998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com