Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';我似乎无法阻止我的js计算器输入两个以上的小数_Javascript_Conditional Statements_Calculator - Fatal编程技术网

Javascript Can';我似乎无法阻止我的js计算器输入两个以上的小数

Javascript Can';我似乎无法阻止我的js计算器输入两个以上的小数,javascript,conditional-statements,calculator,Javascript,Conditional Statements,Calculator,这里的第一件事是项目的代码笔; 我已尝试通过contains()搜索“.”,但条件是将其禁用,但它无法按我希望的方式工作 decimal.addEventListener('click', (e) => { decimal = e.target.value; if (display.innerHTML === '') { result = display.innerHTML = display.innerHTML.concat('0.'); } else if (di

这里的第一件事是项目的代码笔;

我已尝试通过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('.');
  }
});
decimal.addEventListener('click',(e)=>{
十进制=e.目标值;
如果(display.innerHTML==''){
结果=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

对于
按钮,单击
的处理程序。添加以下检查

// 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
单击
handler)时,将十进制计数器重置为
decimalCount=0


链接:

用于字符串的写入方法是
包括

使用它可以解决问题

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

})

请添加一个示例输入和预期输出,使其易于理解。老实说,我不明白你的意思,但我已尽力解释我的问题。我怎么会错过如此明显的方法。今天我学到了一个新的视角。谢谢您,先生。我一直在使用错误的方法。@Metalwell contains()方法返回一个布尔值,指示节点是否是指定节点的后代,它不用于子字符串检查。