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

如何在Chainlink任务中计算数值倒数?结果异常为1求助

解决Chainlink任务计算倒数返回错误结果的问题

问题原因

你的divide任务中,input参数使用了字符串"1",会被Chainlink识别为整数类型;同时parse得到的浮点数1.022015在参与整数除法时会被取整为1,导致1/1=1,最终后续multiply任务只能得到1e18。

修正方案

方案一:直接修正浮点数运算参数

将divide任务的input改为浮点数格式"1.0",确保运算以浮点数逻辑执行,同时调整精度参数保证结果准确性:

parse        [type="jsonparse" path="quotes,USDEUR" data="$(fetch)"]
inverse      [type="divide" input="1.0" divisor="$(parse)" precision="18"]
multiply     [type="multiply" input="$(inverse)" times=1000000000000000000 precision="0"]
  • input="1.0":明确告知Chainlink按浮点数处理被除数
  • precision="18":保留足够小数位避免精度丢失
  • 最终multiply的precision="0"输出整数格式的目标结果

方案二:采用整数运算(Chainlink最佳实践)

Chainlink喂价通常使用整数运算避免浮点误差,可通过转换精度合并运算步骤:

parse        [type="jsonparse" path="quotes,USDEUR" data="$(fetch)"]
convert_to_wei [type="multiply" input="$(parse)" times=1000000000000000000 precision="0"]
inverse      [type="divide" input="1000000000000000000000000000000000000" divisor="$(convert_to_wei)" precision="0"]
  • convert_to_wei:将原浮点数转换为18位精度的整数(1.022015 → 1022015000000000000)
  • input="1e36":通过1e36 / 转换后整数直接得到(1/原数)*1e18的结果,无需额外乘法步骤

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 17:30:57