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)
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)