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

计算对象属性时返回-Infinity值,如何修复?

问题分析与解决方案

你的代码返回-Infinity,本质是数值计算超出了JavaScript可表示的最小负数范围,或参与计算的变量本身存在异常值。按以下步骤排查修复:

  • 先排查变量的原始值
    在计算前打印所有关键变量,确认没有异常:

    console.log('dayanıklılık1:', singleton.kartlistesib1[sayi4].dayanıklılık);
    console.log('dayanıklılık2:', singleton.kartlistesib2[sayi4].dayanıklılık);
    console.log('etki1:', etki1);
    console.log('etki2:', etki2);
    

    如果其中某个值是Infinity/-Infinity,问题根源在etki()方法或dayanıklılık属性的赋值逻辑里。

  • 处理计算溢出
    代码中etki1/(8/10)*etki2等价于etki1 * etki2 / 0.8,若etki1和etki2都是极大正数,乘积会直接溢出成Infinity,减去它就会得到-Infinity。可以:

    1. 限制etki()的返回值范围,避免生成过大的数;
    2. 对计算结果做边界兜底:
      const etkiCalc = etki1 * etki2 / 0.8;
      sayi6 = Math.max(singleton.kartlistesib1[sayi4].dayanıklılık - etkiCalc, Number.MIN_SAFE_INTEGER);
      sayi7 = Math.max(singleton.kartlistesib2[sayi4].dayanıklılık - etkiCalc, Number.MIN_SAFE_INTEGER);
      
  • 检查etki()方法内部逻辑
    确认etki()里没有除以0的操作——如果方法内存在x / 0这类代码,会直接返回Infinity,代入后续计算必然引发异常。

  • 验证索引有效性
    检查sayi4是否在kartlistesib1、kartlistesib2的合法索引范围内,索引越界会导致获取到undefined,访问其属性或方法可能产生异常值,间接引发计算问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 05:55:28