XQuery 中的 XPath
XPath in XQuery
使用以下输出 XSD 输入:
<xs:simpleType name="MoneyType">
<xs:restriction base="xs:decimal">
<xs:fractionDigits value="2"/>
</xs:restriction>
</xs:simpleType>
我使用 fn:sum 命令并得到以下输出:
1.0001865499999999E6
该值应该是
1000186.55
什么会导致这种精度不足
谢谢
这里有两个问题:
(a) 浮点运算(或十进制值到浮点数的转换)导致近似,因为大多数小数不能用二进制精确表示
(b) 默认情况下,"scientific notation" 输出百万分之一到一百万之外的数字,即 2e6 而不是 2000000。
如果你更仔细地解释你在做什么以及你想要达到什么,那么我们可以告诉你如何避免这些问题。
使用以下输出 XSD 输入:
<xs:simpleType name="MoneyType">
<xs:restriction base="xs:decimal">
<xs:fractionDigits value="2"/>
</xs:restriction>
</xs:simpleType>
我使用 fn:sum 命令并得到以下输出:
1.0001865499999999E6
该值应该是
1000186.55
什么会导致这种精度不足
谢谢
这里有两个问题:
(a) 浮点运算(或十进制值到浮点数的转换)导致近似,因为大多数小数不能用二进制精确表示
(b) 默认情况下,"scientific notation" 输出百万分之一到一百万之外的数字,即 2e6 而不是 2000000。
如果你更仔细地解释你在做什么以及你想要达到什么,那么我们可以告诉你如何避免这些问题。