我有一个指数值,例如3.22122E+23
在 Marklogic 中,当我尝试时 -xs:decimal(3.22122E+23)
我收到此错误:
[1.0-ml] XDMP-CAST: (err:FORG0001) xs:decimal(xs:double("3.22122E23")) -- 无效转换:xs:double("3.22122E23") 转换为 xs:decimal
eg 的较低值xs:decimal(3.22122E+18)
给了我正确的结果,即3221220000000000000
。
我看到这是因为十进制溢出并且不能表示为十进制数据类型,但是 Marklogic 中有什么方法可以处理和计算如此巨大的值吗?
同样的问题适用于负值(3.22122E-23
),我可以在其中处理和显示小数点后 20 位以上的数据。