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

Azure Data Explorer中Kusto range查询未用均匀步长?输出是否正确?

Kusto Range 查询步长偏差问题说明

你观察到的非预期均匀步长输出是引擎正常计算的结果,不属于语法错误或者系统bug。

偏差产生的核心原因

  • 本质是IEEE754双精度浮点数的固有表示限制:十进制数值0.2转换为二进制浮点数时是无限循环小数,无法被精确存储,实际参与计算的是和0.2差值小于1e-17的近似值。
  • Kusto的range算子生成序列的逻辑是从起始值开始,逐次叠加设定的步长值生成下一个序列项,每次计算引入的微小浮点误差会逐步累积,最终在序列两端的位置会出现和理论值极微小的偏差(比如接近-1的位置实际值为-1.0000000000000002,接近1的位置实际值为0.9999999999999998),这类偏差的量级远低于常规业务的精度要求。

对齐预期输出的调整方案

  • 如果只需要规整的展示效果,可以在投影步骤对数值做固定精度的舍入处理,示例代码:
range x from -1 to 1 step 0.2
| project x = round(x, 1)

执行后即可得到-1.0、-0.8、-0.6直至1.0的标准等差序列输出。

  • 如果对序列的精度有严格要求,可以改用整数步长生成序列后再做数值缩放,从根源避免浮点累加误差,示例代码:
range x_int from -5 to 5 step 1
| project x = todouble(x_int) / 5.0

内容的提问来源于stack exchange,提问作者Mathias Rönnlund

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 17:15:03