HTML/JavaScript 将字符串转换为数字

HTML/JavaScript Convert Strings to Numbers

我正在为 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";
}

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

查看 parseInt and parseFloat

你可以试试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