You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XQuery中的类型转换异常问题咨询

问题原因解析

这是因为fn:number()函数返回的是64位二进制浮点数(double类型),而十进制的10.12无法用二进制浮点数精确表示——二进制浮点数在存储这类十进制小数时,只能存储一个近似值,只是多数环境会在显示时将这个近似值四舍五入为直观的10.12,让你误以为它是精确值。

当你调用xs:decimal(fn:number('10.12'))时,本质是把这个不精确的double近似值转换为decimal类型,这时候就会暴露它真实的存储值:10.1199999999999992184029906638897955417633056640625。

如果想要直接得到精确的decimal类型10.12,应该跳过fn:number(),直接用xs:decimal('10.12'),这样会直接把字符串解析为精确的十进制小数。

内容的提问来源于stack exchange,提问作者Pallab Mahata

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 12:04:52