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

如何正确实现两个小数的加法运算?

小数加法取整问题的解决方法

你遇到的问题核心是parseInt()会强制截断小数部分只保留整数,所以1.1会被转成1,相加后得到2。如果替换成Number()还是没效果,大概率是传入的参数格式有问题(比如带空格、非数字字符),或者参数传递环节出了问题。

修正后的代码示例

function add(a, b) {
  // 预处理输入:字符串先去空格,再转为数值
  const numA = Number(typeof a === 'string' ? a.trim() : a);
  const numB = Number(typeof b === 'string' ? b.trim() : b);

  // 处理非数字输入的异常情况
  if (isNaN(numA) || isNaN(numB)) {
    display.innerHTML = "请输入有效的数字";
    return;
  }

  const sum = numA + numB;
  display.innerHTML = sum;
  return sum;
}

关键说明

  • 替换parseInt():可以用Number()或parseFloat(),两者都能正确识别小数。Number()支持更多数值格式(比如科学计数法),parseFloat()则专注于解析浮点数;
  • 输入预处理:如果输入是字符串,先调用trim()去除前后空格,避免因空格导致Number()转换失败;
  • 异常处理:加入isNaN()判断,防止非数字输入导致结果出现NaN。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 02:37:09