XQuery 中的 XPath:小数位

XPath in XQuery: Fractional Digits

XQuery 中的 XPath:小数位

我的输出 XSD 如下所示:

<xs:simpleType name="Money">
  <xs:restriction base="xs:decimal">
       <xs:fractionDigits value="2"/>
   </xs:restriction>
</xs:simpleType>

由此我使用了一个语句

fn:sum($Accounts/in:IndividualAcct[in:AcctType = 'AttcRec']/in:balance * in:amount)

但是我对用 上面的定义显示为:

36745.770000000004

我要找的只有2位小数

所以我想知道,我可以使用格式字符串或 fn:string

之类的东西吗

如果是这样,我可以将它与上面列出的我之前的 fn:sum 字符串结合起来吗

那会是什么样子?

谢谢

您没有指定是否支持 XQuery 3.0。如果是这样,fn:format-number($number, $picture) 就是您要查找的内容:

format-number(36745.770000000004, '.00')

结果:36745.77

正如@MichaelKay 在评论中提出的那样,在 XQuery 1.0 中也适用的替代方法是使用 round-half-to-even($number, $precision) 将精度限制为两位小数。如有必要,该数字将自动转换为字符串:

round-half-to-even(36745.770000000004, 2)