SaxonHE XQuery SUM运算精度 [英] SaxonHE XQuery sum operation precision

查看:0
本文介绍了SaxonHE XQuery SUM运算精度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这样一个XML文档

<root>
  <a>20947441.21</a>
  <b>9961900</b>
  <c>27360153.6</c>
  <d>222864.95</d>
  <e>10489146.31</e>
</root>

并且我需要获取根的子元素的和。因此,使用SaxonHE处理器(v10.5)执行以下XQuery表达式:

let $s := (/root/a, /root/b, /root/c, /root/d, /root/e), $res := sum($s) return $res

表达式的结果是6.898150607000001E7。为什么不是68981506.07?如果没有科学的记数法和适当的精度,我怎么能得到可预测的结果?

推荐答案

使用xs:decimal数据类型,而不是默认的数字/xs:Double,只需选择sum(root/*/xs:decimal(.)),或者在您的样本上下文中选择sum($s ! xs:decimal(.))

这篇关于SaxonHE XQuery SUM运算精度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆