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

InfluxDB中字段值除以10后单值返回0的问题求助

问题原因与修复方案

问题根源

这是整数除法导致的问题:你的epv1today字段存储的是整数类型,Flux中整数之间的除法会自动取整(丢弃小数部分)。比如整数运算2 / 10结果为0,21 / 10结果为2,和你观察到的现象完全一致。

修复方法

有两种简单的解决方式:

方法1:使用浮点数触发除法运算

将除数10改为10.0,强制让运算转为浮点数除法:

from(bucket: "watt")
    |> range(start: today())
    |> filter(fn: (r) => r["_measurement"] == "<SerialNumber>")
    |> filter(fn: (r) => r["_field"] == "epv1today")
    |> map(fn: (r) => ({r with _value: r._value / 10.0}))
    |> last()

方法2:先转换字段值为浮点数

用float()函数把_value转换成浮点数后再执行除法:

from(bucket: "watt")
    |> range(start: today())
    |> filter(fn: (r) => r["_measurement"] == "<SerialNumber>")
    |> filter(fn: (r) => r["_field"] == "epv1today")
    |> map(fn: (r) => ({r with _value: float(v: r._value) / 10}))
    |> last()

两种方式都能让运算保留小数部分,输入2时会得到预期的0.2,输入21时得到2.1。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 03:55:11