在执行XSLT sum()
函数时遇到一个特殊的问题。
我的xml文件中有很多发票行,每一行都包含一个金额。我必须将所有这些金额加起来。
以下代码可以正常工作,但是我不了解结果。
sum(current-group()/cbc:LineExtensionAmount)
似乎sum()
函数在计算较大的总数时会出现错误,因为我得到的结果的精度约为10位小数,但是我绝对确定我没有包含10位小数的值精度。
例如,我应该看到类似140.586,86
的内容,但我却得到了140.586,8599999999
。
为什么会这样?我在网上寻找这个问题,发现其他人也有同样的问题。主要解决方案似乎是round()
函数。由于法律限制,我无法应用round()
。
该如何解决?请注意,我正在使用XSLT 2.0。