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;
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);
le plus simple:
dots = dots*1+5;
les points seront convertis en nombre.
N'OUBLIEZ PAS - Utilisez parseFloat();
si vous utilisez des nombres décimaux.
parseInt()
devrait faire l'affaire
var number = "25";
var sum = parseInt(number) + 10;
var pin = number + 10;
Vous donne
sum == 35
pin == "2510"
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;
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;
}