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

JavaScript计算代码运行后返回结果始终为0的问题求助

问题根源

代码返回固定0值和let声明的变量赋值逻辑无关,核心错误是错误使用parseInt()处理带小数的数值。
parseInt()的作用是将入参解析为整数,解析时遇到第一个非数字字符(包括小数点)就会停止,直接返回之前截断得到的整数部分,你注释中标注的几个带小数的输入,实际解析结果和预期完全不符:

  • 预期value1为3.5,实际parseInt("3.5")返回整数3
  • 预期value3为0.3,实际parseInt("0.3")返回整数0
  • 预期valueExtra为10.5,实际parseInt("10.5")返回整数10

不管if判断走哪个分支,最终计算逻辑都是有效值 * value3,而value3被解析为固定值0,乘法结果自然永远是0。

修复方法

处理包含小数的数字转换时,不要使用仅能解析整数的parseInt(),替换为Number()做完整数值转换即可,修复后的代码如下:

const value0 = Number(this.value0); // 8500
const value1 = Number(this.value1); // 3.5
const value2 = Number(this.value2); // 5700
const value3 = Number(this.value3); // 0.3
const valueExtra = Number(this.valueExtra); // 10.5

let myResult = 0
if (value0 > (value1 * value2)) {
  myResult = (value1 * value2) * value3;
} else {
  myResult = valueExtra * value3;
}
return myResult

如果需要兼容输入为空、输入非数字的异常场景,可以在转换后增加isNaN()校验,给异常值设置默认兜底值,避免计算返回NaN。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 20:06:28