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

如何获取变量pesoil除法赋值后的值?该写法是否破坏原变量?

问题解答
  • 这段代码可以实现获取转换为mm month^-1之前的数值:pesoil /= (beta + PSY * exp_h * (1.0 + r_ss / r_as))是复合赋值操作,会将pesoil更新为除以该因子后的结果(即单位为W m^-2的数值),同时这个表达式的返回值就是更新后的pesoil,因此epotential_W会正确存储这个转成mm month^-1之前的数值。
  • 会破坏pesoil原本的初始值:因为/=是原地修改变量的运算符,执行后pesoil不再保留最初beta * rnsoil + CPAIR * RHOAIR * exp_h * vpdo / r_as计算出的原始值。如果后续仅按原有逻辑执行pesoil *= (etimes * ndays[dm]) / LAMBDA来得到mm month^-1的结果,最终pesoil的结果和原代码一致;但如果之后还需要用到最初的pesoil值,这种写法会导致数据丢失。

如果不想破坏原始pesoil值,建议改成:

epotential_W = pesoil / (beta + PSY * exp_h * (1.0 + r_ss / r_as)); // 仅计算赋值,不修改pesoil
pesoil = epotential_W; // 若需保留原逻辑中pesoil的更新,再单独赋值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 13:54:53