Casi no tengo experiencia con Javascript y necesito hacer un sitio web tipo "calculadora". Esta es la parte del código que se supone que debe calcular, pero solo agrega valores en lugar de calcularlos.
Me dijeron que parseInt arreglaría esto, pero debido a mi inexperiencia no puedo encontrar cómo hacerlo a través de Google.
Cualquier ayuda es apreciada y las explicaciones son bienvenidas. ¡Gracias!
function izracunaj() { const st1 = document.getElementById("prvoStevilo").value; //določim konstantno ki bo pridobila informacije iz polja kjer smo določili id const st2 = document.getElementById("drugoStevilo").value; const operacija = document.getElementById("operacija").value; let rezultat; switch (operacija) { //v oklepaje vpišemo operacija, saj to preverjamo case '+': rezultat = st1+st2; break; //podatki se skranijo v rezultat case '-': rezultat = st1-st2; break; case '*': rezultat = st1*st2; break; case '/': rezultat = st1/st2; break; } document.getElementById("rezultat").value = rezultat; } <!DOCTYPE html> <html> <head> <title>Kalkulator</title> <script src="javascript.js"></script> </head> <body> <h1>Kalkulator</h2> <form> Prvo število: <br> <input type="text" id="prvoStevilo"> <br> Drugo število: <br> <input type="text" id="drugoStevilo"> <br> Operacija: <br> <input type="text" id="operacija"> <br> Rezultat: <br> <input type="text" id="rezultat" disabled="true"> <br> <br><br> <input type="button" value="Izračunaj" onclick="izracunaj()"> </form> </body> </html>Cuando use .value , le dará el valor de tipo string . Todo lo que tiene que hacer es usar parseInt o usar + para convertirlo en tipo de number
parseInt(document.getElementById("prvoStevilo").value, 10);o
+document.getElementById("prvoStevilo").value;o
Number(document.getElementById("prvoStevilo").value); function izracunaj() { const st1 = parseInt(document.getElementById("prvoStevilo").value); // change //določim konstantno ki bo pridobila informacije iz polja kjer smo določili id const st2 = +document.getElementById("drugoStevilo").value; // change const operacija = document.getElementById("operacija").value; let rezultat; switch (operacija) { //v oklepaje vpišemo operacija, saj to preverjamo case '+': rezultat = st1 + st2; break; //podatki se skranijo v rezultat case '-': rezultat = st1 - st2; break; case '*': rezultat = st1 * st2; break; case '/': rezultat = st1 / st2; break; } document.getElementById("rezultat").value = rezultat; } <h1>Kalkulator</h2> <form> Prvo število: <br> <input type="text" id="prvoStevilo"> <br> Drugo število: <br> <input type="text" id="drugoStevilo"> <br> Operacija: <br> <input type="text" id="operacija"> <br> Rezultat: <br> <input type="text" id="rezultat" disabled="true"> <br> <br><br> <input type="button" value="Izračunaj" onclick="izracunaj()"> </form>También puede dejar que javascript evalúe la ecuación por usted usando Función. Multiplico los primeros dos argumentos por 1 para forzarlos a NaN o valores numéricos, y limito el operador a los cuatro valores en la expresión regular para desinfectar las entradas, luego combino los argumentos en una cadena con una plantilla literal.
function izracunaj() { const st1 = document.getElementById("prvoStevilo").value*1; const st2 = document.getElementById("drugoStevilo").value*1; const operacija = document.getElementById("operacija").value; if(!/[+-/*]/.test(operacija)) { return; } let formula = `return ${st1}${operacija}${st2}`; let rezultat = new Function(formula); document.getElementById("rezultat").value = rezultat(); } <!DOCTYPE html> <html> <head> <title>Kalkulator</title> <script src="javascript.js"></script> </head> <body> <h1>Kalkulator</h2> <form> Prvo število: <br> <input type="text" id="prvoStevilo"> <br> Drugo število: <br> <input type="text" id="drugoStevilo"> <br> Operacija: <br> <input type="text" id="operacija"> <br> Rezultat: <br> <input type="text" id="rezultat" disabled="true"> <br> <br><br> <input type="button" value="Izračunaj" onclick="izracunaj()"> </form> </body> </html>