web-dev-qa-db-fra.com

Comment forcer JS à faire des mathématiques au lieu de mettre deux chaînes ensemble

J'ai besoin de javascript pour ajouter 5 à une variable entière, mais au lieu de cela, il traite la variable comme une chaîne. Il écrit donc la variable, puis ajoute 5 à la fin de la "chaîne". Comment puis-je le forcer à faire des maths à la place?

var dots = 5
function increase(){
    dots = dots + 5;
}

Sorties: 55

Comment puis-je le forcer à sortir 10?

Serait-ce une erreur dans mon script quelque part?

J'initialise dots comme ceci:

dots = document.getElementById("txt").value;
90
Sean

Vous avez la ligne 

dots = document.getElementById("txt").value;

dans votre fichier, cela définira les points comme une chaîne car le contenu de txt n'est pas limité à un nombre.

pour le convertir en int changez la ligne en:

dots = parseInt(document.getElementById("txt").value);
104
Alex

le plus simple:

dots = dots*1+5;

les points seront convertis en nombre.

48
mier

N'OUBLIEZ PAS - Utilisez parseFloat(); si vous utilisez des nombres décimaux.

18
Nicolas

parseInt() devrait faire l'affaire

var number = "25";
var sum = parseInt(number) + 10;
var pin = number + 10;

Vous donne

sum == 35
pin == "2510"

http://www.w3schools.com/jsref/jsref_parseint.asp

6
Alan L.

J'ajoute cette réponse parce que je ne la vois pas ici.

Une façon est de mettre un caractère '+' devant la valeur

exemple:

var x = +'11.5' + +'3.5'

x === 15

J'ai trouvé que c'était le moyen le plus simple

Dans ce cas, la ligne:

dots = document.getElementById("txt").value;

pourrait être changé pour 

dots = +(document.getElementById("txt").value);

pour le forcer à un nombre

REMARQUE: 

+'' === 0
+[] === 0
+[5] === 5
+['5'] === 5

Cela fonctionne aussi pour vous: 

dots -= -5;
3
Holger.Buick

c'est vraiment simple

var total = (1 * yourFirstVariablehere) + (1 * yourSecondVariablehere)

cela oblige javascript à se multiplier car il n'y a pas de confusion pour * connecter javascript.

Vous pouvez ajouter + derrière la variable et cela forcera à être un entier

var dots = 5
    function increase(){
        dots = +dots + 5;
    }
0
Hassan Ali Salem