似乎无法阻止我的 js 计算器输入两位以上的小数

Can't seem to prevent my js calculator to put more than two decimals

这里首先是项目的代码笔; https://codepen.io/furkancodes-the-typescripter/pen/jOyGJvx

我试过搜索“.”通过 contains() 也有条件将其禁用,但它无法正常工作。

decimal.addEventListener('click', (e) => {
  decimal = e.target.value;
  if (display.innerHTML === '') {
    result = display.innerHTML = display.innerHTML.concat('0.');
  } else if (display.innerHTML === output && display.innerHTML.indexOf(".") < 0) {
    display.innerHTML = display.innerHTML.concat('.');
  }
});

也尝试想出一个像上面那样的解决方案,但我确信我在这里没能掌握一些东西。任何人都可以让我知道哪里出了问题,并引导我找到正确的路径来“防止我的计算器允许超过一位小数”以及我可以做出的任何其他改进。

示例输入:

4...4

预期输出:

4.4(计算器显示不超过一位小数)

为了阻止用户在单次输入中输入多于一位的小数点,你可以实现一个计数器。

let decimalCount = 0;

.number 按钮的 click 处理程序添加以下检查。

// For  the decimal increment decimal counter
    if (number.id === ".") {
      decimalCount++;
    }

    // For more than one decimal don't do anything. Return
    if (number.id === "." && decimalCount > 1) {
      return;
    }

当用户输入另一个输入时(.operator click 处理程序)将十进制计数器重置为 decimalCount = 0;

Link: https://codesandbox.io/s/calculator-no-multiple-decimals-2fjnm

用于字符串的写入方法是includes

使用它解决问题

decimal.addEventListener('click', function(){
  if(display.innerHTML.includes('.') || firstNumber.innerHTML.includes('.')){
    decimal.disabled = true;
  } else {
    decimal.disabled = false;
  }

})