【问题标题】:HTML/JavaScript Convert Strings to NumbersHTML/JavaScript 将字符串转换为数字
【发布时间】:2021-10-23 03:16:17
【问题描述】:

我正在为 freeCode 挑战做一个计算器,但我遇到了一个问题:如何将我的输入(字符串、所有等式)转换为结果? 我的代码在输入字段中接收所有方程(例如:1+1 或 46+90),我必须能够解方程。 我想要做的是将第一个和第二个数字放在两个变量中并将它们转换为 int(可能使用 parseInt 进行转换)并且运算符也将放入其他变量中。 我最初将所有方程放入一个数组中,并使用 for+if 语句获取数字。但是怎么做呢?有更好的解决方案吗? 示例:如果我收到等式 11+12,如何将字符串 1 和 1 取为 11?与 12 相同..

我的完整运行代码:https://codepen.io/httxx/pen/bGRbKeQ

var trigger=0, x=0,y=0, operator=0;
function number(variable){
    if(trigger==0){
    x=variable;
    document.getElementById("display").value = ""+x;
    trigger=1;
    }else if(trigger==1){
    x=variable;
    document.getElementById("display").value += ""+x;
    }
}

function result(){
    var i;
    const val = document.querySelector('input').value;
}

function AC(){
    trigger=0;
    x=0;
    y=0;
    operator=0;
    document.getElementById("display").value = "0";
}

【问题讨论】:

  • 您可以使用String(),查看此链接以获取示例w3schools.com/jsref/jsref_string.asp 您可以使用parseInt()parseFloat() 转换回数字。
  • 你输入的类型是什么?,你使用模式吗?
  • 输入是 type="text",查看完整代码codepen.io/httxx/pen/bGRbKeQ
  • 请注意,要求“更好”的解决方案是题外话,因为“更好”会邀请意见而不是事实。而是询问您想要改进的具体、客观、可衡量的品质。此外,在问题中包含minimal reproducible example,而不仅仅是在 CodePen 上。您可以使用 Stack Snippets(工具栏中的图标类似于 <>)。

标签: javascript html arrays calculator parseint


【解决方案1】:

你可以试试split拆分数字和运算符,这样字符串会更容易处理。

例如:inputString 等于11+12

let result = 0;
let stringArray = inputString.split(/[\+\-\*\/]+/);         \\ ["11", "12"]
let firstNumber = parseFloat(stringArray[0]);               \\ 11
let secondNumber = parseFloat(stringArray[1]);              \\ 12
let operator = inputString.replace(/[0123456789.]/g, '');   \\ "+"
switch (operator) {
    case '+':
         result = firstNumber + secondNumber;
         break;
    case '-':
         result = firstNumber - secondNumber;
         break;
    case '*':
         result = firstNumber * secondNumber;
         break;
    case '/':
         result = firstNumber / secondNumber;
         break;
}

或者您可以直接查看此Build A Calculator With JavaScript Tutorial

【讨论】:

    【解决方案2】:

    使用parseInt() 解析一个整数 使用parseFloat() 解析浮点数。

    查看parseIntparseFloat

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 2014-08-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多