Cómo obligar a JS a hacer matemáticas en lugar de juntar dos cadenas [duplicate]
⏰ 3 minutos de lectura
sean
Necesito javascript para agregar 5 a una variable entera, pero en su lugar trata la variable como una cadena, por lo que escribe la variable y luego agrega 5 al final de la “cadena”. ¿Cómo puedo obligarlo a hacer matemáticas en su lugar?
var dots = document.getElementById("txt").value; // 5
function increase(){
dots = dots + 5;
}
Producción: 55
¿Cómo puedo forzarlo a la salida? 10?
Este ejemplo en particular genera 10.
– deceze ♦
30 de enero de 2011 a las 5:42
posible duplicado de Javascript agregando dos números incorrectamente; mira mi respuesta a esa pregunta
– Phrogz
30 de enero de 2011 a las 5:44
Ha colocado una carga indebida en aquellos que quieren ayudarlo al descargar todo su código sin intentar reducirlo. Pruébelo usted mismo… haga los atributos CSS para #control hacer alguna diferencia en su problema? Si no es así, bórralos y no nos los muestres. Continúe reduciendo su código hasta que tenga el caso de prueba mínimo absoluto necesario para reproducir su problema. La mayoría de las veces hacerlo causará usted para encontrar el problema y aprender en el proceso. Si no lo resuelve usted mismo, es muy probable que obtenga ayuda rápida con su ejemplo simple.
– Phrogz
30 de enero de 2011 a las 5:50
Alex
tienes la linea
dots = document.getElementById("txt").value;
en su archivo, esto hará que los puntos sean una cadena porque el contenido de txt no está restringido a un número.
Nota la 10 aquí especifica decimal (base-10). Sin esto, algunos navegadores pueden no interpretar la cadena correctamente. Ver MDN: parseInt.
atajo… puntos = +document.getElementById(“txt”).valor
– Rastreador1
30 de enero de 2011 a las 8:45
parseInt(…, 10) también, siempre use un radix… una verificación de cordura… if (!dots || dots < 1) también puede estar en orden...
– Rastreador1
30 de enero de 2011 a las 8:47
Mejor use el operador de incremento para la adición. como VARIABLE++ en lugar de VAR= VAR+1;
– gnganapath
2 de diciembre de 2014 a las 6:43
function add() { var a = prompt(‘Ingrese el 1er número’); var b = prompt(‘ingrese el segundo número’); var c = a + b; console.log(‘reuslt es ‘ + c); } agregar(); por ejemplo var a = 5; y var b = 9; luego imprime 59 en lugar de 14; soy incapaz de entender lo que está yendo mal aquí.
–Monu Rohilla
28 de marzo de 2021 a las 6:21
@AnkurRohilla a y b son cadenas, necesita que sean números para poder hacer operaciones matemáticas con ellas. Esto se hace por var c = parseInt(a,10)+parseInt(b,10)
– Alex
29 de marzo de 2021 a las 12:19
mier
lo más simple:
dots = dots*1+5;
los puntos se convertirán en número.
Incluso más simple que eso sería dots = +dots+5.
– Andy E.
15 de septiembre de 2011 a las 16:44
Nicolás
NO OLVIDES – Usar parseFloat(); si estás tratando con decimales.
Y no olvide que float no es un tipo de datos decimal stackoverflow.com/questions/588004/…
–Tedd Hansen
20 de noviembre de 2014 a las 14:04
Solo usa Number.
– Sebastián Simón
25 de junio de 2018 a las 6:59
Christopher Strolia-Davis
Estoy agregando esta respuesta porque no la veo aquí.
Una forma es poner un carácter ‘+’ delante del valor
ejemplo:
var x = +'11.5' + +'3.5'
=== 15
He encontrado que esta es la forma más simple
En este caso, la línea:
dots = document.getElementById("txt").value;
podría ser cambiado a
dots = +(document.getElementById("txt").value);
para forzarlo a un número
NOTA:
+'' === 0
+[] === 0
+[5] === 5
+['5'] === 5
alan l
parseInt() debería hacer el truco
var number = "25";
var sum = parseInt(number, 10) + 10;
var pin = number + 10;
Nota la 10 en parseInt(number, 10) especifica decimal (base-10). Sin esto, algunos navegadores pueden no interpretar la cadena correctamente. Ver MDN: parseInt.
Holger Buick
Esto también te sirve:
dots -= -5;
HSLM
Puede agregar + detrás de la variable y forzará que sea un número entero
var dots = 5
function increase(){
dots = +dots + 5;
}
¿Ha sido útil esta solución?
Tu feedback nos ayuda a saber si la solución es correcta y está funcionando. De esta manera podemos revisar y corregir el contenido.
Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.
Configurar y más información
Este ejemplo en particular genera 10.
– deceze
♦
30 de enero de 2011 a las 5:42
posible duplicado de Javascript agregando dos números incorrectamente; mira mi respuesta a esa pregunta
– Phrogz
30 de enero de 2011 a las 5:44
Ha colocado una carga indebida en aquellos que quieren ayudarlo al descargar todo su código sin intentar reducirlo. Pruébelo usted mismo… haga los atributos CSS para
#control
hacer alguna diferencia en su problema? Si no es así, bórralos y no nos los muestres. Continúe reduciendo su código hasta que tenga el caso de prueba mínimo absoluto necesario para reproducir su problema. La mayoría de las veces hacerlo causará usted para encontrar el problema y aprender en el proceso. Si no lo resuelve usted mismo, es muy probable que obtenga ayuda rápida con su ejemplo simple.– Phrogz
30 de enero de 2011 a las 5:50