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

JavaScript大数加法计算异常求助:数据类型调用是否有误?

问题分析与解决

你的问题和数据类型无关,核心是逗号替换不彻底:

  • replace(',','')只会替换字符串里的第一个逗号,比如输入1,000,000处理后变成1000,000
  • parseInt解析时遇到非数字字符(逗号)就会停止,所以实际拿到的是1000而非1000000
  • 同理2,245,000会被解析成2245,两者相加自然得到3245

修正方案

把逗号替换改成全局替换,用正则表达式的/g标识匹配所有逗号:

function calculate() {
  // 全局替换所有逗号,同时指定parseInt的十进制参数
  var uang_cash = parseInt(document.getElementById('uang_cash').value.replace(/,/g, ''), 10);
  var uang_tf   = parseInt(document.getElementById('uang_tf').value.replace(/,/g, ''), 10);
      
  // 整数直接相加即可,无需转float
  document.getElementById('uang_saya2').value = uang_cash + uang_tf;
}

额外提示:

  • 给parseInt加上第二个参数10,避免某些特殊场景下的进制解析异常
  • 如果输入可能为空或非数字,可以加默认值兜底,比如parseInt(..., 10) || 0,防止出现NaN

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 12:41:02