Zahlensumme bei JavaScript berechnen?
Servus,
Ich sitze mittlerweile seit einiger Zeit bei der wöchentlichen SEW Aufgabe, dabei müssen wir einen GUI Rechner programmieren. Darunter ist auch eine function für die Zahlensumme zu programmieren, jedoch weiß ich nicht, wie man das programmieren kann.
Eingabe folgt per <input> im HTML, Ich habe dem input die Konstante "input" gegeben.
Ich hoffe, dass mir hier geholfen wird, da ich den Rest bereits programmiert habe und mir nur die function für die Zahlensumme fehlt.
Danke im Voraus!
3 Antworten
Zwei Möglichkeiten:
- Geh deinen String zeichen für Zeichen durch, wandle jedes Zeichen in eine Zahl um, und bilde die Summe über die Zahlen
- Wandle deinen String in eine Zahl um. Dann teile die Zahl solange durch 10, bis sie 0 ist. Du schneidest also immer die hinterste Stelle weg (durch 10 teilen = Komma nach links verschieben). Diese hinterste Stelle ermittelst du jedes mal bevor du sie wegschneidest mit Modulo 10 ( also zahl%10) und addierst sie zur Summe.
Code für Methode 1:
numberInput = "123";
sum = [...numberInput].reduce((a,b) => Number(a)+Number(b))
Code für Methode 2:
numberInput = "123";
number = Number(numberInput)
sum = 0;
while (number/10 > 0) {
sum = sum + number%10; // Hinterste Stelle zur Summe addieren
number = Math.floor(number / 10); // Hinterste Stelle wegschneiden
}
Achsooo, hab mich schon gewundert :D
Zwei Möglichkeiten:
- Geh den String zeichen für Zeichen durch und wandle das jeweilige Zeichen in eine Zahl um. Bilde von den Zahlen die Summe.
- Nimm die Zahl, mach Modulo 10, addiere das Ergebnis zur Summe, und teile dann die Zahl durch 10. Und das solange, bis /10 Null ergibt.
Hey, habe heute auch so eine ähnliche Aufgabe bekommen.
Meine Lösung (die auch funktioniert) lautet so:
btnZahl.onclick = function (){
let checkOk = true;
msgInNumber1.innerText = '';
if(isNumber(inNumber1.value) == false) {
msgInNumber1.innerText = 'Eingabe ist keine Zahl';
checkOk = false;
return
}
let counter = 0;
let Sum = 0;
while(counter < inNumber1.value){
counter = counter +1;
Sum = Sum + counter;
}
output1.innerHTML= 'Zahlensumme: '+Sum
}
Hoffe das Hilft dir :)
Hallo um in JavaScript zu addieren musst du nur -/+ eingeben Beispiel:
const input = YOURINPUT BSP:(10 + 30)
output ist dann: 40
oder
const input1 = "20"
const input2 = "10"
const calc = input1 + input2
Wenn ein + dasteht, und mind. eine der beiden Variablen ein String ist, dann wird das Plus als String Concatenation interpretiert. Und dann werden einfach beide Variablen zu einem neuen String zusammengefügt.
const input1 = "20"
const input2 = "10"
const calc = input1 + input2
Da kommt 2010 raus. "20" und "10" ist zusammenfgefügt "2010".
Was man hier machen müsste damit es funktioniert:
const calc = Number(input1) + Number(input2)
Müsste man input1 und input2 unter Number() setzen, damit 30 rauskommt?
Entweder die Anführungszeichen weglassen (wenn man sich konkret auf obiges Beispiel bezieht) oder einen Typecast vornehmen (mit parseInt oder Number). Der folgende Snippet zeigt zu letzter Variante beide Möglichkeiten:
let a = "1";
let b = "2";
let sum = Number(a) + parseInt(b);
So wie ich's gemacht hab müsste man es machen.
const calc = Number(input1) + Number(input2)
Anstatt Number() geht natürlich auch parseInt().
(Ja, man muss beide Variablen zu einer Nummer umwandeln)
Sorry, kleiner Rechtschreibfehler von mir.... Meinte eigentlich die Quersumme :D
Also z.B. von 12 = 3